亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 PHP/Curl 獲取框架內的 html?

如何使用 PHP/Curl 獲取框架內的 html?

PHP
開滿天機 2022-12-11 09:55:31
我是第一次使用 PHP\Curl。我的目的是創建一個機器人,從多個網站檢索和收集數據,這些網站從機器獲取數據(我確切地說我確實擁有這些數據,對我來說只是在一個點上收集所有數據)。我設法登錄到這些網站并獲取了一些數據。由于 file_get_contents 函數,我還設法在 iframe 中獲取數據。但是,如果我嘗試在一個簡單的框架(而不是 Iframe)中獲取 html,它就不起作用。我使用了下面框架元素的 url(是的,有完整的 url)。我沒有收到任何錯誤。我確實得到了一些 html 元素,但沒有我正在尋找的 html。我看到了 html 正文,但它幾乎是空的。我完全確定我提供給 php/curl 的 url。我應該怎么做才能在框架內獲取 html?這是我試圖從中獲取數據的頁面上可見的框架元素。(這不是我從 php/curl 響應中得到的):<frame name="WMain" src="/WSID0002340321/easy/GUI-1280">     The html i'm looking for is here</frame>所以沒有什么特別的。我看過這篇文章:How to use PHP CURL with frames? 但問題并不完全相同,答案是關于 iframe 并假設有 html 元素。感謝你們對我的幫助。
查看完整描述

2 回答

?
倚天杖

TA貢獻1828條經驗 獲得超3個贊

我懷疑某些 HTML 可能是使用 Javascript 生成的——在這種情況下,當頁面首次加載時它不存在,因此使用像 cURL 這樣的非瀏覽器客戶端的簡單請求將永遠看不到它,或者可能會被下載通過額外的 AJAX 請求 - 在這種情況下,您可以通過直接向 AJAX 使用的 URL 發出請求來檢索它。甚至是兩者的某種結合。使用瀏覽器的開發人員工具更仔細地檢查頁面可能有助于您了解內容的實際創建方式。

如今,頁面包含稍后加載和/或由腳本生成的內容是很常見的。因此,原始 HTML 的基本下載無法捕獲額外的內容(因為沒有 Javascript 環境可以運行代碼并下載/創建額外的 HTML)。你需要一個無頭瀏覽器,或者一個像谷歌爬蟲一樣復雜的網絡客戶端才能完全加載這樣的頁面


查看完整回答
反對 回復 2022-12-11
?
慕神8447489

TA貢獻1780條經驗 獲得超1個贊

嘗試使用 preg_match 來處理html


$html = "...<frame>...</frame>";

preg_match("~<frame[^>]*>(.*?)</frame>~",$html,$output);

echo $output;

演示: https: //3v4l.org/CNJWQ


查看完整回答
反對 回復 2022-12-11
  • 2 回答
  • 0 關注
  • 225 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號