PHP情報収集ではコンテンツが収集できないのですが?

WBOY
リリース: 2016-06-23 14:14:39
オリジナル
894 人が閲覧しました

PHP Curl 情報収集はブラウザー収集をシミュレートします

今日、突然何かを収集したいと思いました。最初は問題ありませんでしたが、しばらくすると、問題がどこにあるのかわかりません。コードは次のとおりです。皆さん、アドバイスをお願いします。
function getContent($url) {
$url = トリム($url);
if (extension_loaded('curl')) {
$ch =curl_init( );
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch,CURLOPT_HTTP)ヘッダー、配列(
'Accept-Language: zh-cn'、
'Connection: Keep-Alive'、
'Cache-Control: no-cache'
));
$user_agent="Mozilla/4.0 (互換性; MSIE 6.0 ; Windows NT) 5.1 ; SV1)";
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
$content =curl_exec($ch);
curl_close($ch);
returnrim($content)

}//end func; getContent();


ディスカッションへの返信(解決策)

収集した URL は何ですか
収集した URL は何ですか
たとえば、このアドレス: http://movie.douban.com/subject/10604486/ ?from=playing

あなたの場所でも収集できませんか?

このアドレスの内容を収集してみてください: http://www .tianya.cn/43064769元々は面白いコンテンツが欲しかっただけなのですが、その後ページすら開けなくなりました

あなたのところでは集められないでしょうか
そうですね、集めすぎたかもしれませんね彼らには少し残念だ。ブラウザでは正常に開くことができますが、収集が機能しません。今すぐ収集を続ける方法はありますか?

実際、私のプログラムは十分に完璧ではないと感じています。そうしないと、ブラウザは動作しますが、プログラムが動作しません。プログラムのどこが完璧ではないのかわかりません。アドバイスをお願いします。 ! ! !

ここで改善することは何もありません。おそらく、頻繁に呼び出しすぎる可能性があります。どうやって呼んだのか分かりません。

ここには改善すべき点は何もありません、おそらくそれを頻繁に呼び出しすぎます。どうやって呼んだのか分かりません。
あまり頻繁ではないので、アドレスを入力して電話をかけました。

私はループ呼び出しを使用しました。途中で一時停止することはなく、ループは 100 回未満続きました。サイクルを一時停止しましたが、ピッキングを続行できない場合はどうすればよいですか?

わかりませんが、サーバーに大きな負荷がかかることは間違いありません。

明らかにブロックされています。一般的には、2 日後にサンプリングを続行できます。

まず、停止せずにブロックされるまでの時間を計算し、停止時間を設定します。 usleep またはスリープ制御を使用します。または、プロキシ IP を使用して現在も収集していますが、収集を停止する効率が大幅に低下するように感じます。

ブラウザーを開くことができる場合は、パケットのキャプチャと検査を完全にシミュレートする必要があることを意味します。

ブラウザが開ける場合は、ブロックされていないことを意味します。パケット キャプチャ チェックの完全なシミュレーションは確実に機能します。
これは必ずしも真実ではありませんが、ブラウザは正常に開くことができます。しかし、データは収集できません。相手が疑似キャプチャであるかどうかを判断している可能性があります。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート