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 に突っ込んだ. パラグラフがわかんなくなったけど読めるのでいいことにした.