このGoogle検索結果ページのコンテンツを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で同様の質問を見てきましたが、私を助けることができる答えはありません.
編集:
cURLと同じ結果が得られるSelenium WebDriverを使用してリンクを開こうとしました。これは、プロセスのどこかで混乱しているクエリ文字列に特殊文字が含まれているという事実に関係しているとまだ考えています。