【问题标题】:How can I get the HTML of a curl request within a specified time如何在指定时间内获取 curl 请求的 HTML
【发布时间】:2014-01-13 23:16:31
【问题描述】:

我有一个脚本使用 curl 来获取网页的 html。有时它可以完美地获取信息,而有时它似乎挂起。我设置了超时条款-

curl_setopt($ch, CURLOPT_TIMEOUT, 10);

所以现在脚本不再挂起,但是当它超时时,它不会返回任何 html。 curl 有没有办法在超时之前获取它收到的所有 html?或者,有没有其他的方法来实现这个想法——“在指定的时间内从一个 URL 获取所有你能得到的 html”?

【问题讨论】:

    标签: php curl web-scraping


    【解决方案1】:

    使用CURLOPT_FILE

    例子:

    <?php
    $ch = curl_init("http://www.example.com/");
    $fp = fopen("/path/to/save/file", "w");
    
    curl_setopt($ch, CURLOPT_FILE, $fp);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_exec($ch);
    curl_close($ch);
    fclose($fp);
    
    echo file_get_contents("/path/to/save/file");
    ?>
    

    【讨论】:

    • 总是很乐意提供帮助。
    【解决方案2】:

    使用流包装器,您甚至可以即时解析数据。看看这个: Manipulate a string that is 30 million characters long

    【讨论】:

    • 这很棒,但比我希望的要复杂得多。似乎它会解决我的问题。因此,如果找不到其他解决方案,我会这样做。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2014-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-01
    • 2021-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多