« ブログサーチのクローラーのためのテストエントリ~ | トップ | [Senna]はまりどころ »

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

コメント

コメントしてください




保存しますか?


楽天トラベル 夏の旅行