2008年8月20日水曜日

 

【PHP】クローラのためのライブラリ(追記:2008/08/21)【Perl】

PHP - cURL

cURL 関数 - PHPマニュアル
例1 PHP の cURL モジュールを使用して example.com のホームページを取得する

<?php
  $ch = curl_init("http://www.example.com/");
  $fp = fopen("example_homepage.txt", "w");
  curl_setopt($ch, CURLOPT_FILE, $fp);
  curl_setopt($ch, CURLOPT_HEADER, 0);
  curl_exec($ch);
  curl_close($ch);
  fclose($fp);
?>
[PHP-users 28997] Re:curl関数によるデータ収集について - MLog:

while(条件) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, $global_values["user_agent"]);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$html = curl_exec($ch);
curl_close($ch);
}
上記のコードであれば良いが以下は駄目。アクセスのオープン・クローズのタイミング。

$ch = curl_init();
while(条件) {
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, $global_values["user_agent"]);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$html = curl_exec($ch);
}
curl_close($ch);
このような構造になっていると、curl_exec()を実行するたびに少しずつ解放 されないメモリが蓄積されていき、いずれ動かなくなります。
cURL関数で3つのハードルを乗り越えて投稿するCommentsAdd Star - SLYWALKER
クローラからアクセスしてベーシック認証にログイン(クッキー・セッション)、サイトに投稿する。
追記:2008/08/21
php curlをつかったオリジナルクラス (myCurlRequest) - hiyuzawa.jpn.org
APIの複数リクエスト。
php curlを使って2ちゃんねると高速通信 - へぼいいいわけ
datファイルを差分取得。

Perl - CPAN::Gungho

Gungho - search.cpan.org
Perlメモ/Gungho/簡単なRSSクローラ - Walrus, Digit.
Gunghoモジュールの解説と例。
なんちゃってクローラーでURL漁りComments - pomo123の日記
サムネイルを作成するWebページのURLを自動的に漁ってくる

ラベル: ,


コメント: コメントを投稿

登録 コメントの投稿 [Atom]



この投稿へのリンク:

リンクを作成



<< ホーム

This page is powered by Blogger. Isn't yours?

登録 投稿 [Atom]

Google