我試圖獲取任何網頁的 HTML 代碼,只有在它完全加載之后。
我嘗試了 CURL 和 file_get_contents,現在我明白它們不會等待 JavaScript 完成。
我現在知道解決方案是使用無頭瀏覽器。我試過 PhantomJS,但它的效率有點低,因為找到讓它等待的唯一方法是設定一個恒定的超時時間。
另外,我發現一般來說,幾乎不可能在頁面真正完全加載時獲得,最好的方法是不斷檢查網路資料,直到它們完全停止。
我相信不斷檢查頁面中內容的存在,對我來說會很好用,但據我所知,實作它的唯一方法是使用 puppeteer 包,它只適用于 NodeJS 而不是 PHP。
那么,你們知道有什么有效的方法可以在頁面完全加載到 PHP 后獲取 HTML 代碼,而不需要通過集成其他編程語言或其他平臺的復雜程序嗎?
uj5u.com熱心網友回復:
我認為您無法使用 PHP 完成它,因為它不是瀏覽器并且不能運行 JavaScript。您可以使用Headless Chromium 之類的東西,但chrome --headless --disable-gpu --dump-dom https://www.chromestatus.com/遺憾的是無法準確判斷它何時“完全加載”,但我敢肯定,您可以在某種型別的延遲上進行。
uj5u.com熱心網友回復:
Mb 類似于在頁面加載完成時設定 JS 以將所有頁面內容設定為變數,然后通過 Ajax 將該變數發送到 php 腳本?
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/322038.html
