我想用 curl抓取这个谷歌搜索结果页面的内容。我一直在尝试设置不同的用户代理,并设置其他选项,但我似乎无法获取该页面的内容,因为我经常被重定向或出现“页面移动”错误。
我相信这与查询字符串在某处被编码的事实有关,但我真的不确定如何解决这个问题。
//$url is the same as the link above
$ch = curl_init();
$user_agent='Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0'
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_USERAGENT, $user_agent);
curl_setopt ($ch, CURLOPT_HEADER, 0);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch,CURLOPT_CONNECTTIMEOUT,120);
curl_setopt ($ch,CURLOPT_TIMEOUT,120);
curl_setopt ($ch,CURLOPT_MAXREDIRS,10);
curl_setopt ($ch,CURLOPT_COOKIEFILE,"cookie.txt");
curl_setopt ($ch,CURLOPT_COOKIEJAR,"cookie.txt");
echo curl_exec ($ch);
我需要做什么才能让我的 php 代码显示页面的确切内容,就像我在浏览器上看到的那样?我错过了什么?谁能指出我正确的方向?
我在 SO 上看到过类似的问题,但没有一个可以帮助我的答案。
编辑:
我尝试使用 Selenium WebDriver 打开链接,它提供与 cURL 相同的结果。我仍然认为这与查询字符串中存在特殊字符的事实有关,这些字符在过程中的某个地方被弄乱了。