首页 > 解决方案 > cURL 返回部分页面 dom

问题描述

我有一个抓取其他网站的脚本。我抓取的其中一个网站突然开始返回部分 HTML 响应。意思是,不返回整个 DOM。

这是我的代码:

$url = "https://example.com";
$curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
    curl_setopt($curl, CURLOPT_MAXREDIRS, 10);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($curl,CURLOPT_USERAGENT,'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/7046A194A');
    curl_setopt($curl,CURLOPT_HTTPHEADER,array('Expect:'));
    curl_setopt( $curl, CURLOPT_SSL_VERIFYPEER, false );
    curl_setopt($curl, CURLOPT_ENCODING, 'identity');


    $response['str'] = curl_exec($curl);
    var_dump($response);    
    $response['header'] = curl_getinfo($curl, CURLINFO_HTTP_CODE);

    curl_close($curl);

因此,当我对 $response 进行 var_dump 时,我得到了部分 HTML 响应(这个特定的 URL 似乎没有使用 AJAX 加载内容。当使用浏览器访问这个 URL 时,它会在源代码中一起加载)

我似乎找不到解决此问题的答案。我会很感激我能得到的任何帮助。

谢谢

标签: phpcurlweb-scrapingphp-curl

解决方案


推荐阅读