glucose build 182をリリースしました。 バグフィクスが中心です。
詳細はglucose.dip.jpの方を参照してください。
Trackback機能もついて、いろんなBlogを読み込ませてみてわかったんですけど、XMLが間違ってるサイトが結構多い。
エンコード間違いが一番多いかな?
他には、日付にTimeZoneが入ってなくて、UTCとして処理出来ないとか。 でも日付周りはglucoseとしてももうちょっと突っ込まないといけない気がする。
面白かったのが、 hogehoge's blog みたいなのをXML validにエンコードしているつもりが hogehoge\'s blog になってるXMLがあった。 おーい
http://sinsuke.net/blog/index.rdf がIconv中に落ちるんです。
はー? はー? と原因を探る事3時間。
ずっと、最近書き直したHTTPのレスポンスのパーザー周りを探ってたんですが、全然関係ありませんでした。
原因はこのrdfのencodingが"UFT-8"になってるというお粗末なもんでした。
もう簡便して。
でも、おかげでiconv_openの返り値チェックしていないバグを発見しました。
glucoseでずっとblogエントリのカテゴリーが設定出来ない問題があったんですが、やっと治った!
原因見つけて俺感激
RPCの項目名の 'categoryId' が 'categoryID' になってました。 はい。
何はともあれ、これでやっとglucoseをつかってまともにWeblogに投稿出来るようになる。
やっとライブラリが問題なく動くようになったので、あとは本体の方をこれに置き換えて行く。
yahoo.co.jpはパイプライン接続できないんだけど何でだろう。毎リクエストに必ずConnection : closeが付く。もしかしてUser-Agent見てるのかな
現在、HTTP周りを1.1のパイプラインを使うように変更している。
今までは、1個DLしてセッション切れて、DLした奴Python通して、次の奴DLして・・・
という風にやっていて、1つのサーバに同時に6本のセッション張っちゃったりするようなお行儀の悪いプログラムだったのですが、これを改めまして1つのセッションでパイプラインを作ってズガーっとDLして、違うスレッド立ててそっちはPythonで処理しまくりっていう風にしようとしている。
大体出来てきたんだけどまだ問題が
DLに比べて、Pythonの処理の方が遅く、DLしたページががしがし溜まっていってメモリを食っちゃうんですね。
酷い時には400MBぐらい食っちゃったりする! スクリプトの方変更して100MBぐらいまで抑えたんだけど、やっぱりこれはまずいので対策を施さなきゃいけない。
Pythonはスレッド非安全なはずなので、DLしたページをHDDに落とすとかしなきゃいけないな・・・