Pipesメモ

Akiba Hotlineのhttp://www.watch.impress.co.jp/akiba/hotline/20090131/etc_dyna.htmlとかのページはHTMLが怪しい。headが2個あったりする。これをフェッチするとRegexのマッチで挙動がおかしい。マッチした部分が$1とか無視して消える。ソースが長すぎるからという可能性もあるけど。
なのでおかしいHTMLをXHTMLなりXMLなりに整形・変換してくれるサービスを探す。いくつか見つかった。

やってみるとどれも日本語が化ける。Shift_JISには対応してないらしい。
いろいろ悩むが、実は携帯用ページがあることに気づく。

どっちも同じにしか見えないけど。これなら超シンプル。さっそくフェッチしてみるがなんと文字化け。
昔の情報だと

このところ一部の日本語が化けるようになってしまった Yahoo! Pipes ですが、どうも HTTP の Content-Type が text/xml や text/plain で charset がない feed が化けて、application/xml や application/octet-stream の feed は化けないように見えます。
text だけは charset なしだと (XML の encoding に係わらず) us-ascii で扱ってたりするんでしょうか。
とりあえず掲示板に現象だけ報告。

Pipesの文字化け - 帝冠ダイアリー

らしいけどヘッダを調べると通常版も携帯版もどっちもtext/html(charsetなし)に見える。
で、文字化け対策として

Yahoo! Pipes の charset 問題の文字化けが直らないので回避策を調べてみました。
いずれも reverse proxy 的にヘッダ (だけでもないけど) を書き換えるサービスをオリジンサーバと Pipes の間にはさむ方法です。

Pipes の文字化け回避策3つ - 帝冠ダイアリー

で3つ挙がってるけど基本的にXML対象のサービスみたいだし、使ってみても文字化け直りません…。

あと忘れちゃいけないポイント:

最後に正規化される
a タグに rel="nofolow" が追加されたり、相対リンクが消えたり、HTML 的に変なところを正規化する。途中のモジュールをプレビューしたときも HTML が正規化されているが、正規化は一番最後に走るので混乱しないよう。スクレイピングするサイトのソースを見ながら作業したほうがよさそう。
Yahoo! Pipes の Page Fetch モジュールでスクレイピングし放題 - てっく煮ブログ 跡地

デバッガの途中の出力はあくまで参考程度。