2006年12月02日
[Plagger]クローラー部一応完成

前回のエントリーの波ダッシュの部分は、ちょっと考えを改めて、データーとしては変に変換せずに持つことにする。画面に出力する際に必要なら変換するように。
で、なかなかこのところ年末進行で時間が取れないんですが、大体クローラー部は出来上がりました。
工夫したところとしては、Subscription::PingServerLiberalで、あちらこちらのchanges.xmlをとってくると、UFT-8ではない文字が入り込んでいる場合があり、その場合に、Aggregatorがエラーを吐いて止まってしまうので、Plagger側で前処理を行うことも考えたけれど、考えを改め、PHPにパラメーターでchanges.xmlのURLを渡し、PHPにその内容の取得を変換を行たあと、Subscription::PingServerLiberalに渡すことにしました。
plugins:
- module: Subscription::PingServerLiberal
config:
fetch_items: 1
servers:
- url: http://....jp/parse.php?url=http://....com/changes.xml
PHPでの変換は主に以下のような感じ。
mb_convert_encoding($xmlStr, "UTF-8", "UTF-8");
mb_convert_encodingは、判断できないエンコーディングの文字は勝手に省いてくれます。
また、pingサーバーのchanges.xmlがときたまタイムアウトしたりして、その場合もAggregatorに影響を及ぼすので、その場合のハンドリングなんかもPHP側に任せています。
あとは、クローラーをまわし続けるために、最初は、cronで時間を決めて巡回させていたのですが、現在のテスト環境のマシンが超低スペックなので、処理に時間がかかると多重起動しまくりで、マシンがハングアップするので、ちゃんとプロセスを見て多重起動させないようにしました。
投稿者 田中@グリニッジ : 2006年12月02日 15:06
トラックバック
このエントリーのトラックバックURL:
http://blog.tanaka-cs.com/mt/mt-tb.cgi/116
