Yahoo! Pipes の XPath Fetch Page モジュールで文字化けするページを YQL モジュールで取るようにした

元ネタはYahoo! Pipes の文字化け回避 : 備忘録.

使った pipe は Pipes: ANNニュース.

テレ朝ニュースを XPath Fetch Page モジュールで取ったときに文字化けするようになった.

以前は

<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />

だったのが

<meta charset="Shift_JIS">

に変わったのが影響してるのかもしれない (参考: 2012-11 の web archive). (2013-03-02T06:01:51+09:00追記: 元ネタでは同時に文字化けし始めた pipe があるみたいだし, 文字化けし始めたらしい「きょうたろう」<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" /> だし全然関係なさそう. Pipes 側で何か変更があったっぽい.)

元ネタを参考にして YQL モジュールを使ってみたらうまく取れた.

select * from html where url='$0' and charset='Shift_JIS' and xpath='//div[@id="news_body"]'

Rename を使って item.link を item.YQLQueryBody に Copy As して, Regex で .* を使って上の $0 に URL が入るようにして, Loop の中に入れた YQL の "Enter Your Query:" で item.YQLQueryBody を指定した.

文章だとよくわからないのでキャプチャした.

取得した DOM オブジェクトっぽいものを HTML String にする方法がわからなかったのでそのまま description に突っ込んだ. パラグラフがわかんなくなったけど読めるのでいいことにした.