Xangoというクロウラーフレームワークを使ってみる Xango XangoはPerlで書かれた汎用クローラーフレームワークです。 イベント型フレームワークPOEを使用することにより高速なクローリングが可能です。 実装にもよりますが、単一プロセス内でインデックシングや文字コードの変換等の処理を 同時に行うアプリケーションでも1秒に5~8 URL、1時間で 18000 ~ 22000 URLの処理が行えます。 ドキュメントはperldocのみっぽいので、日本語の情報を残す意味で使い方のメモをば。 相当端折って書いてます。 Xangoを使ったクロウラーを書くには、制御用のにPOEセッションを作る必要があります。 Xangoを制御するためのモジュールを適当な名前で作っておくのがスマートかと思います。 とりあえずセッション作成を行う処理を書きます sub spawn { my $class = s
昨日のエントリに軽くブックマークが付いているようなので、サンプルスクリプトをさらしておく。 サンプルの割りに依存ライブラリが多いとか、やたら長いとかはまぁ勘弁。とりあえず Xango::Broker::Push のほうを。 #!/usr/bin/env perl #sub Xango::DEBUG { 1 } package MyHandler; use strict; use warnings; use POE; use Readonly; use HTML::LinkExtractor; use Encode; require Encode::Detect; Readonly::Scalar my $MAX_DEPTH => 5; Readonly::Scalar my $MAX_REDIRECT => 5; sub spawn { my $class = shift; my $sel
クローラを作る必要に迫られているので、Crawler Framework の Xangoや、crawlerを試してみたり。 POEを全然使ったことがないせいか、Xangoのほうは最初付属のPODを呼んでも全然分かんなかったんだけど、そこは Plagger::Plugin::Aggregator::Xango とか、t/02-pull.t と t/lib/XangoTest/SimplePull/{Broker,Handler}.pm あたりを読んでがんばる。ていうか POD の SYNOPSYS にすぐ動くサンプルを書いていてほしいと思ったり。あと、公式サイトに書いてある svn://svn.razil.jp/Xango/trunk って SVN レポジトリがアクセスできないけど http://svn.razil.jp/Xango/trunk ならアクセスできる罠。まぁ、最終的には CPA
POEを利用していて高速だというXango(1.08)を試してみました。環境はいつもの solaris x86 でこんなかんじ。 % uname -a SunOS dokodemo 5.10 Generic_118844-26 i86pc i386 i86pc Solaris まずXangoをインストールする前にPOEをインストールします。 依存パッケージのインストール途中 POE::Component::Client::HTTP の POE-0.3601/tests/30_loops/00_base/wheel_run.pm あたりでテストがこけてなんともならないので cpan> force install POE::Component::Client::HTTP で入れました。 Xango自体は確か問題なくインストールできた気がします。 Xangoについては YappoLogs:
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く