ホームページ >バックエンド開発 >PHPチュートリアル >専門家を探しています。Web ページのブラウザー クロールをシミュレートします。

専門家を探しています。Web ページのブラウザー クロールをシミュレートします。

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-06-23 14:23:071347ブラウズ

たとえば、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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。