【问题标题】:Fetch html content after page is fully loaded using curl页面完全加载后使用 curl 获取 html 内容
【发布时间】:2014-04-15 11:55:46
【问题描述】:

我在这里遇到了一些问题。当我加载页面时,至少需要 10 秒才能显示完整的结果。当我使用 curl 时,它只在运行时显示页面的 html 内容。我希望 curl 至少等待 10 秒才能获取完整的结果。这是我的代码,

<?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;
?>

请告诉我我在哪里犯了错误以及我可以删除或添加什么以使脚本正常工作。谢谢

【问题讨论】:

  • 我想你指的是页面打开后加载的代码。如果是这样,您无法使用 curl 获取该代码,因为它是 ajax url。您需要在 chrome 控制台中找到 ajax url,然后获取它而不是主页。

标签: php html curl


【解决方案1】:

我不确定你从哪里得到的 10 秒。在我的中档 Linux 笔记本电脑上,该页面在 Firefox 中加载大约需要 3 秒。但是,您感到困惑的是加载 HTML 页面所需的时间与加载所有附加/动态内容所需的时间。

当您点击 URL 时,您会得到一个非常小的静态 HTML 页面以及一些 javascript、css、图像等。您看到的延迟是 javascript 执行 AJAX 请求以及图像所需的时间完全加载。

如果你使用curl,你只会得到静态的 HTML - 没有其他任何东西。除非您计划实现完整的 javascript 引擎和 HTML 解析器,然后加载所有其他资源,并根据需要执行 javascript 代码,否则不会有任何延迟。

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

【讨论】:

    【解决方案2】:

    将此添加到您的$options 数组中:CURLOPT_TIMEOUT =&gt; 10 其中10 是您希望它在超时之前等待的秒数。

    http://altafphp.blogspot.com/2012/12/difference-between-curloptconnecttimeou.html

    【讨论】:

      【解决方案3】:

      我也遇到了同样的问题。 但是 CURLOPT_CONNECTTIMEOUT 是这个值,这意味着如果 curl 在这段时间内无法连接到文件,它将放弃。 而 CURLOPT_TIMEOUT 是这个值,意思是如果 curl 在连接后的这段时间内无法抓取这个文件,它将放弃。 因此,在特定秒后设置 curl 函数抓取没有任何价值。 您可以使用 JavaScript 代码将此文件加载到窗口中并抓取它们。 或者你可以使用 Python 网络驱动程序

      【讨论】:

        猜你喜欢
        • 2017-04-11
        • 1970-01-01
        • 1970-01-01
        • 2019-06-18
        • 2018-07-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-17
        相关资源
        最近更新 更多