multi_requester.js で天気予報とか見たいなーとか考えてて、
とかで郵便番号か住所で検索すればよさそうだと考えたのだけど、これって検索してもいきなり1箇所が特定されるわけではなくて、1クッション挟む状態になる。
こーやって検索すると。
こーなる。
ちなみに、実際の「ピンポイント天気」なる目的ページは郵便番号とかで置換可能かと思いきや、地域・地区などが URL の途中で入ってきて、どっかに変換データかロジックでもない限り検索してみないとわからない。
なので、SITEINFO に extractLink いう属性を追加して、そこに XPath を与えることで、リクエスト結果を元に再度リクエストする仕組みを作った。実際の定義はこんな感じ。
name: 'weather-yahoo', description: 'Yahoo!天気情報', url: 'http://search.weather.yahoo.co.jp/bin/search?pref=all&p=%s', xpath: 'id("cat-pass") | id("yjw_pinpoint_today") | id("yjw_pinpoint_tomorrow") | id("yjw_week")', srcEncode: 'EUC-JP', extractLink: '//table[@class="yjw_table3"]/descendant::a[1]'
これで一旦検索した後で、extractLink からのリンクを辿り、取得した結果を xpath で引っ張るという仕組みになる。Plagger の TruePermalink 的なものか、Autopagerize の nextLink みたいなものか。
これで、以下のように郵便番号とか市区町村名で検索すると
こんな感じで結果が出力される。
後は、.vimperatorrc とかで
javascript <<EOM liberator.globalVariables.multi_requester_mappings = [ [',mw', 'weather-yahoo', '', '5300001'], // keymap, subcommand, bang, args ]; EOM
みたいな感じで定義しとくと、いつでも特定の天気予報が。
しかし、ここで一つ問題が。しかも大きな!
2.0pre だと、Yahoo のページ(というか EUC-JP のページ) だと、正常に出力されるのに、それ以外のページで出力しようとしてもバッファが HTML を解釈してくれない!!! 1.2 だとうまくいくのに。なんでだろー。
つーか、実はいうと、いちいち検索してリンク取得して再取得みたいなことしなくても、直接天気のページにリンクする SITEINFO を .vimperatorrc に書いてマップしときゃ、手っ取り早いわけだが。
javascript <<EOM liberator.globalVariables.multi_requester_siteinfo = [ { name: 'weather-yahoo-oosaka', description: 'weather-yahoo-oosaka', url: 'http://weather.yahoo.co.jp/weather/jp/27/6200/27127/5300001.html', xpath: 'id("cat-pass") | id("yjw_pinpoint_today") | id("yjw_pinpoint_tomorrow") | id("yjw_week")', srcEncode: 'EUC-JP' }, ]; liberator.globalVariables.multi_requester_mappings = [ [',mw', 'weather-yahoo-oosaka', '', 'dummy'], ]; EOM
ま、extaractLink 追加したよってことで。
Contents
追記 2008/12/07 23:37
ver.0.4.1 で 2.0pre も対応した。Changeset 25714 – CodeRepos::Share ? Trac
Links
– suVeneのあれ: [vimperator]リクエスト結果をバッファ出力(muilti_requester.js)
– CodeRepos::Share – Trac – multi_requester.js (for vimperator ver. 1.2)
– CodeRepos::Share – Trac – multi_requester.js (for vimperator ver. 2.0pre)
– アイテム – データベース: Multi Requester – wedata
コメント
更新した > [vimperator]multi_requester.js で天気予報をみる!(extractLink) http://zeromemory.sblo.jp/article/23694574.html
fav: [vimperator]multi_requester.js で天気予報をみる!(extractLink) – suVeneのアレ : http://bit.ly/36x7n
Browsing: [vimperator]multi_requester.js で天気予報をみる!(extractLink) – suVeneのアレ – http://bit.ly/36x7n