Python マルチスレッド PHP マルチスレッド Web ページ クローリング実装コード

WBOY
リリース: 2016-07-29 08:43:19
オリジナル
1093 人が閲覧しました

PHP 言語自体がマルチスレッドをサポートしていないため、クローラ プログラムの開発効率は高くありません。多くの場合、複数のファイルへの同時マルチスレッド アクセスを実現できる Curl Multi Functions を使用する必要があります。 URL アドレス。 Curl Multi Function は非常に強力なので、Curl Multi Function を使用して同時マルチスレッド ファイル ダウンロードを作成できますか? もちろん、それは可能です。私のコードを以下に示します:
コード 1: 取得したコードをファイルに直接書き込みます

。コードをコピーします コードは次のとおりです:


$urls = array(
'http://www.sina.com.cn/',
'http://www.sohu. com/',
'http://www.163.com/'
); // クロールするページの URL を設定します
$save_to='/test.txt' // クロールされたコードをここに書き込みますファイル
$st = fopen($save_to,"a");
$mh =curl_multi_init();
foreach ($urls as $i => $url) {
$conn[$i] =curl_init($url) );
curl_setopt ($conn[$i], CURLOPT_USERAGENT, "Mozilla/4.0 (互換性; MSIE 7.0; Windows NT 6.0)");
curl_setopt($conn[$i], CURLOPT_HEADER ,0); conn[$i ], CURLOPT_CONNECTTIMEOUT,60);
curl_setopt($conn[$i], CURLOPT_FILE,$st); // クロールされたコードをファイルに書き込むように設定します
curl_multi_add_handle ($mh,$conn[$i]) ]);
} //
do {
curl_multi_exec($mh,$active);
} while ($active) //
foreach を実行します ($urls as $i => $url) {
curl_multi_remove_handle( $mh,$conn [$i]);
curl_close($conn[$i])
} // クリーンアップを終了します
fclose($st);コード 2: を取得します。 コードは最初に変数に入れられ、次にファイルに書き込まれます



コードをコピーします


コードは次のとおりです:

$urls = array( 'http: //www.sina.com.cn/ '、'http://www.sohu.com/'、

'http://www.163.com/'

); txt'; // キャプチャしたコードをファイルに書き込みます
$st = fopen($save_to,"a");
$mh =curl_multi_init();
$conn[$i] =curl_init ($url);
curl_setopt($conn[$i], CURLOPT_USERAGENT, "Mozilla/4.0 (互換性; MSIE 7.0; Windows NT 6.0)"); i], CURLOPT_HEADER ,0);
curl_setopt($conn[$i], CURLOPT_CONNECTTIMEOUT,60); // クロール コードを書き込まないように設定します。ブラウザですが、文字列に変換されます
curl_multi_add_handle ($mh,$conn[$i])
}
do {
curl_multi_exec($mh,$active)
foreach ($urls as); $i => $url) {
$data =curl_multi_getcontent($conn[$i]); // クロールされたコード文字列を取得します
fwrite($st,$data); // 文字列をファイルに書き込みます。もちろん、データベースに保存するなど、ファイルに書き込まないことも可能です
} // データ変数を取得してファイルに書き込みます
foreach ($urls as $i => $url) {
curl_multi_remove_handle ($mh,$conn[$i]);
curl_close($conn[$i]);
fclose($st);
上記は、Python マルチスレッドの内容を含む、PHP マルチスレッド Web ページ クローリングの実装コードを紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。


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