PHP:html内容的curl_exec()与视图页面源不同

时间:2012-10-11 10:34:38

标签: php parsing curl web-scraping

以下代码的Html输出提供了一些在页面中根本不可用的附加数据。我将此输出与视图页面源进行比较。额外数据从“寻找其他......”开始。

$url : http://www.linkedin.com/pub/senthil-selvaraj/36/90b/5b9
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,           "$url");
curl_setopt($ch, CURLOPT_TIMEOUT,       30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($ch, CURLOPT_COOKIEJAR,     "cookie.txt");
curl_setopt($ch, CURLOPT_USERAGENT,     "Mozilla/4.0 (compatible; MSIE 5.01;    Windows    NT 5.0)");

 if ($proxystatus == 'on')
 {
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
    curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE);
    curl_setopt($ch, CURLOPT_PROXY, $proxy);
 }            

 $body = curl_exec($ch);

1 个答案:

答案 0 :(得分:0)

这很可能与cookie或标题相关联,因为cURL不会以各种方式模拟真实的浏览器。因此,您的输出可能会有所不同,因为cURL甚至可以发送不同的Accept或Location标头等。

您尝试过不同的浏览器吗?此外,cURL是否与您正在浏览该页面的IP相同?

编辑:您可以尝试做的是将Firebug安装到Firefox中,然后使用F12键打开它,切换到网络(或网络)标签并检查浏览器发送的标头到服务器。然后,您可以使用cURL请求模拟这些标头。