2012-03-13 931 views
0

我嘗試使用PHP/CURL編寫webboot,但是我在處理一個特定頁面時遇到問題,它正在動態加載一些內容! .. 來解釋更多: 當我嘗試使用PHP/CURL下載頁面時,我沒有收到一些內容!然後我發現這個內容在加載頁面後加載。這就是爲什麼CURL不處理這些錯過的內容。使用PHP/CURL獲取(動態加載頁面)內容?

任何人都可以幫助我!

我的樣本代碼:

$ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_REFERER, $reffer); 
    curl_setopt($ch, CURLOPT_USERAGENT, $user_agent); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, $redirect); 
    curl_setopt($ch, CURLOPT_COOKIEFILE, ABSOLUTE_PATH."Cookies/cookies.txt"); 
    curl_setopt($ch, CURLOPT_COOKIEJAR, ABSOLUTE_PATH."Cookies/cookies.txt"); 
$result = curl_exec($ch); 
+0

無論你做什麼curl都不會作爲一個啓用javascript的瀏覽器,所以你不能通過ajax/jsonp等獲取內容;你可以嘗試一個模擬瀏覽器的測試平臺,但它似乎打敗了目的;甚至沒有谷歌分析這種類型的內容;如果你只是需要來自該頁面的數據(並且你沒有創建抓取程序),只需進行多個調用並複製系統 – mishu 2012-03-13 15:54:17

+0

'只需進行多次調用並複製系統'..你能解釋一下嗎! ..並且你可以命名這些'模擬瀏覽器的平臺'之一。謝謝 – user504363 2012-03-13 16:18:34

回答

1

您試圖加載哪個網址?這可能是因爲您請求的頁面有一個或多個AJAX請求,事後才加載內容。我不認爲cURL可以通過AJAX或其他XHR請求來容納運行時加載的信息。

你可能想看看類似PhantomJS的東西,它是一個無頭WebKit瀏覽器,它將完全執行頁面並返回動態組裝的DOM。

+0

shorouknews.com/caricature/waleed – user504363 2012-03-13 16:27:27

+0

是的,它肯定是通過AJAX頁面加載後加載數據 – infomaniac 2012-03-13 17:09:01

+0

謝謝,我用[json post](http://www.lornajane.net/posts/2011/posting -json-data-with-php-curl)和curl – user504363 2012-03-14 10:06:04