如何使用cURL获取页面内容?
我想使用curl抓取此Google搜索结果页面的内容。我一直在尝试设置不同的用户代理,并设置其他选项,但我似乎无法获得该页面的内容,因为我经常被重定向或收到“页面移动”错误。
我相信这与查询字符串在某处编码的事实有关,但我真的不知道如何解决这个问题。
//$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相同的结果。我仍然认为这与查询字符串中存在特殊字符的事实有关,这些字符在过程中的某个地方被搞砸了。