PyBloglines

PyBloglines を使ってみようとしたら、xml パーサがエラー吐く。原因解明するくらいなら勉強かねて自分で作ってしまえと Bloglines の登録リストを取得してパースするやつ作ってみた◎ 登録リストは http://rpc.bloglines.com/listsubs からベーシック認証で取得できて、結果は OPML で返ってくる。PyBloglines はこの OPMLxml パーサで丁寧に解析してるんだが、簡単な構造の xml なので妥当性を検証する必要なければ正規表現でやった方が楽っぽいのでそうした。で、さっきエラー吐いた原因が分かった。

Bloglines に登録しているサイト名がマルチバイトで長いと、Bloglines の方ではそこら辺考慮してないのでマルチバイト文字の途中までしか返ってこないってことがある(文字の境界を正しく判断しない)。これは Bloglines の My Feeds 画面でも文字化け起こしてる原因なんだけど。で、xml パーサが UTF-8 をデコードしようとしたときにエラー吐くっぽい。

対策として、Bloglines の方でタイトル変更してやるか、自分の方で正しい文字の境界でデコードしてやるかになる。前者の対策をするなら PyBloglines でもエラー吐かずに問題ないと思うが、PyBloglines の処理だとフォルダの階層を考慮しないんで人によっては使いづらいと思った。

各フィードの情報は Universal Feed Parser 使えばできそうだ。