ホームページ >バックエンド開発 >PHPチュートリアル >専門家を探しています。Web ページのブラウザー クロールをシミュレートします。
たとえば、Web ページ http://map.sogou.com/api/ をクロールしたい場合、URL の後に「/」がない場合、私が作成したプログラムはクロールできませんが、Web サイトはクロールできます。 (http://tool.chinaz.com/Tools/PageCode.aspx) にアクセスすると、最後の「/」なしでキャプチャできます (つまり、http://map.sogou.com/api)。 ?私のコードは以下に掲載されていますので、改善してください
function file_get($url){ ob_start(); $ch = curl_init(); curl_setopt($ch, CURLOPT_COOKIEJAR, "./cookie.txt"); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; InfoPath.1; CIBA)"); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, FALSE); curl_setopt($ch, CURLOPT_COOKIESESSION, TRUE); curl_setopt($ch, CURLOPT_NOBODY, FALSE); curl_exec($ch); curl_close($ch); $content = ob_get_clean(); return $content;}
コードを追加してください:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
http:// をクロールしているためです。 map.sogou.com/api にアクセスすると、301 ジャンプが返されます。ジャンプ後の HTML をキャプチャするには、この文を追加します。
コードを追加してください:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
http://map.sogou.com/api をクロールするため、301 ジャンプが返されます。ジャンプ後の HTML をキャプチャするには、この文を追加します。
追加しても機能しません、まだ取得できません
コードを追加してください:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
http://map を取得しているためです。 sogou.com/api を実行すると、301 ジャンプが返されます。ジャンプ後の HTML をキャプチャするには、この文を追加します。
追加しても機能しません、まだわかりません
function file_get($url){ ob_start(); $ch = curl_init(); curl_setopt($ch, CURLOPT_COOKIEJAR, "./cookie.txt"); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; InfoPath.1; CIBA)"); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, FALSE); curl_setopt($ch, CURLOPT_COOKIESESSION, TRUE); curl_setopt($ch, CURLOPT_FOLLOWLOCATION,TRUE); curl_setopt($ch, CURLOPT_NOBODY, FALSE); curl_exec($ch); curl_close($ch); $content = ob_get_clean(); return $content;}
CURLOPT_FOLLOWLOCATION