2014-04-15 164 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代码,否则无延迟会帮助您获取完整信息。

我强烈建议你重新考虑你的方法。

相关问题