2014-04-15 125 views
0

我在這裏遇到了一些問題。當我加載頁面時,至少需要10秒才能顯示完整的結果。當我使用curl時,它只會在運行時顯示頁面的html內容。我希望curl等待至少10秒以獲取完整的結果。這是我的代碼,頁面完全加載後使用curl獲取html內容

<?php 

$cookie = tmpfile(); 
$userAgent = 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31' ; 

$ch = curl_init('http://filippo.io/Heartbleed/#www.example.com:433'); 

$options = array(
    CURLOPT_CONNECTTIMEOUT => 20 , 
    CURLOPT_USERAGENT => $userAgent, 
    CURLOPT_AUTOREFERER => true, 
    CURLOPT_FOLLOWLOCATION => true, 
    CURLOPT_RETURNTRANSFER => true, 
    CURLOPT_COOKIEFILE => $cookie, 
    CURLOPT_COOKIEJAR => $cookie , 
    CURLOPT_SSL_VERIFYPEER => 0 , 
    CURLOPT_SSL_VERIFYHOST => 0 
); 

curl_setopt_array($ch, $options); 
$kl = curl_exec($ch); 
curl_close($ch); 
echo $kl; 
?> 

請告訴我,我爲犯錯誤&我能刪除或添加使腳本工作。謝謝

+0

我想你是指在頁面打開後加載的代碼。如果是這樣,你無法使用curl來獲取該代碼,因爲它是ajax url。您需要在Chrome控制檯中找到ajax url,然後獲取它而不是主頁面。 –

回答

2

我不知道你來自哪裏得到了10秒。在我的中檔Linux筆記本電腦上,該頁面在Firefox中加載大約3秒鐘。然而,你所困惑的是HTML頁面加載所需的時間與所有額外/動態內容加載所花費的時間。

當你點擊URL時,你會得到一個非常小的靜態HTML頁面以及一些javascript,css,圖像等。你看到的延遲是JavaScript執行AJAX請求所花費的時間,以及圖像加載競爭。

如果您使用curl,那麼您只能獲取靜態HTML - 而不是其他任何東西。除非您計劃實施完整的JavaScript引擎和HTML解析器,然後加載所有其他資源,並根據需要執行JavaScript代碼,否則無延遲會幫助您獲取完整信息。

我強烈建議你重新考慮你的方法。

相關問題