0

TI 想要获取远程站点 html 代码,为此我使用 CURL,这是我的代码

    $URL = "http://example.com/";

    $ch = curl_init();


    curl_setopt($ch, CURLOPT_URL, $URL);   
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_ENCODING, 'UTF-8');


    $content = curl_exec($ch);
    curl_close($ch);

这几乎适用于每个网站,我获得了完整的 HTML 内容。

但是有1个网站,抓取结果是html代码到</head>,也就是结束head标签之后,curl没有得到html源。

当我通过浏览器看到这个网站的 html 源代码时view source,这里是整个 html(网站也很好)。

可能是什么原因,curl 没有得到整个 html 源代码?

4

2 回答 2

3

也许这个网站会阻止其他人抓取他们的内容。我建议您User-Agent在请求标头中添加以模拟 Web 浏览器。

curl_setopt($ch,CURLOPT_HTTPHEADER,array('User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:19.0) Gecko/20100101 Firefox/19.0'));
于 2013-03-28T15:37:03.120 回答
0

可能该网站正在重定向您。添加此选项:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);

这将使 curl 跟随重定向。

于 2013-03-28T15:29:10.970 回答