書名で検索の続きとAmazonのURLがまた変わった?件

調査結果

  • 書名関連
    • javascriptでSHIFT-JISをencodeURL出来ない
    • phpでmb_internal_encoding("SJIS")と宣言してから、urlencodeすればOK
    • bk1のURLはISBNコードと関連性がないが、bk1の検索ページにISBNコードを渡せばOK
    • ECSのXMLは当然UTF-8bk1はSHIFT-JISである
  • XML関連
    • 親ノードが存在しない場合、子ノードが存在するか判断してはだめらしい。
      必ず存在するノードの直下のノードで判断する
  • AmazonのURL関連
    • またまたURLが異なるケースが見つかった。
      現状のURLから判断するやり方はあきらめmyrmecoleonさんのやられているように、ページ内でASINまたはISBNの後に続くISBNコードらしきものからハイフンを取り除いたものを使用するパターンで行くことにした

Bookmarklet

Amazon用(実際には1行です)

javascript:(function(){var is,a=document.body.innerHTML;a.match(/ASIN.?(\d{9}[X\d])/i)|
a.match(/ISBN.?(\d{9}[X\d])/i)|a.match(/(\d\-[\-\d]{8}\-[X\d])/);is=RegExp.$1.replace(/-/g,'');
if(!is){alert('NO ISBN');}else{window.open('http://natu.blue.coocan.jp/menu.htm?ISBN1='+is);}})();

ついでなので新しいインターフェース版のページへ飛ぶようにしました。

GreasemonkeySeahorse

数が数ですので明日の夜以降にリリースします

新しいインターフェース版の問題点

  • 書名検索以外の問題点を列記
    • ISBNコード入力エリアを設けたら各検索ボタンを非表示に出来なくなった
      書名検索を行う図書館があと3館あるため、不要な図書館を非表示しなければ、画面がスクロールしてしまう。
    • ボタンにフォーカスが当たっているときに、ポインタが変わらない、色が変わらない(CSSの問題か?)

備考

Amazonの詳細ページのURL形態が変わった場合に、同じようなGreasemonkeyスクリプトBookmarklet、Seahouseスクリプトを作成されている方にアナウンスする方法はないのだろうか?ソレっぽい内容でググってコメント書いたり、トラックバック打ったりというのもなんだか変だしどうしたものか

スクリプトの修整

修整前)

	var href = document.location.href;
	var index = href.indexOf('product');
	var asin = href.substring(index+8,index+18);

修整後

	var n=document.body.innerHTML;
	var ai=n.indexOf("ASIN");
	var asin=n.substring(ai+5,ai+15);

たぶんこんな感じ