AutoPagerize/
AutoPagerlikeのGoogle イメージ検索に対応させる方法を模索してみました。
■SeaHorseスクリプト(Sleipnir専用)
■Greasemonkeyスクリプト(Firefox専用)
Google イメージ検索対応のおまじない
AutoPagerize ver 0.0.26+パッチ版
AutoPagerize本体ソースのSITEINFOに以下のような設定を追加します。
var SITEINFO = [
{
name : 'Googleイメージ検索',
url : 'http://images\\.google\\..+/images\\?.+',
nextLink : 'id("nn")/parent::a',
pageElement: '//table[tbody/tr/td/a[starts-with(@href,"/imgres")]]',
exampleUrl : 'http://images.google.com/images?gbv=2&hl=ja&safe=off&q=%E3%83%9A%E3%83%BC%E3%82%B8'
},
上記をインストール後、
ページに行って試してみてください。
■サンプル
■メモ書き
Google イメージ検索の検索結果はJavaScriptで出力されるようになっているため、
AutoPagerize (swdyh)の方でも、
- http://images.google.co.jp/ ←JavaScriptで生成しているから難しいらしい
と、『対応希望リストのうち、現状は対応が難しいリスト』に上がっています。
ところが、じゃあJavaScriptをオフにした状態だと見られないのかというとそんなことはなく、ちゃんとサムネイルが表示されます。要は、JavaScriptオフの場合は、それ用のページにリダイレクトされているようです。
【例】
- JavaScriptオン:http://images.google.com/images?gbv=2&hl=ja&safe=off&q=%E3%83%9A%E3%83%BC%E3%82%B8
- JavaScriptオフ:http://images.google.com/images?hl=ja&safe=off&q=%E3%83%9A%E3%83%BC%E3%82%B8&gbv=1&ei=0N30R5ieEYOs6gOqkvTICQ
そんなわけで、最初のページの『次へ』のリンクに設定されているURLのうち、"gbv=2"を"gbv=1"に変えてやってから、SITEINFOを適用してやると、無事ページの継ぎ足しが出来るようになりました。
あ、ただし、オリジナルのAutoPagerize(
ver 0.0.26)の場合には、
最初のページにpageElementにマッチする要素がないと適用されないようになっているため、パッチ(launchAutoPager()内の該当箇所をコメントアウト)が必要でした。また、Google イメージ検索の設定はソース内SITEINFOに直書きです。
↓
【2008/04/05追記】
■
oAutoPagerizeのGoogleイメージ検索対応 oAutoPagerize ver 0.4.1 - 0x集積蔵
SITEINFOを工夫して、本体にはほとんど手を入れずに動くようにしてみました。
を参考にして、オリジナルのAutoPagerizeでもパッチ無しで動作するようになりました(SITEINFO直書きなのは変わりませんが)。
あと、URLがhttp://images.google.co.jp/images?~の場合があったり、『次へ』リンクに"gbv=2"というパラメータが入っていない場合があったりすることに気付いたので、修正しています。
0x集積蔵さんの方にその旨コメントしようかと思って、念のためソースを見てみたら、既に対応済のようでした。さすが。
あと、AutoPagelikeの方のpageElementは、
,pageElement: '//table[tbody/tr/td/a[starts-with(@href,"/imgres")]]'
だとうまく動かないので、仕方なく
,pageElement: '//table[tbody/tr/td/a[contains(@href,"/imgres")]]'
にしています。
動かないのは、ActiveXObject('htmlfile')でHTMLドキュメント作ると、リンクの相対パスが勝手に(現在のページのドメインをベースとした)絶対パスに書換えられてしまうからです……これ、相対パスのままにする方法はないのかなぁ?