Amazon商品ページからhontoの検索結果を開くブックマークレット

書籍(和書)の購入に際してはhontoをよく使うので、Amazonの商品ページからhontoへ飛べるブックマークレットを探した。

上の記事にあるものを入れてみたが、ISBNをうまく取得できなかったので素人ながらJavaScriptコードを以下のように修正した。

javascript:(function(){
var baseUrl='https://honto.jp/netstore/search.html?tbty=1&isbn=';
var match=document.body.innerText.match(/978-(\d{10})/);
if (match && match[1]) {
    var isbn=match[1].replace('-', '');
    open(baseUrl+isbn, '_blank');
} else {
    alert('ISBNコードが取得できませんでした');
}   
})()

なお、個人的に電子書籍の結果は不要なので、紙の本の結果だけが出るように修正してある。2行目の「tbty=1&」を抜けば、hontoの電子書籍の検索結果も一緒に出る。また、「tbty=1&」を「tbty=2&」にすれば、hontoの電子書籍のみの検索結果が出る。

元の記事にもこうあるが、飛ぶ先はhontoだけでなく任意のサイト(の検索結果ページ)に変更できる模様。

2行目のbaseUrlを変更すれば、任意のサイトにリダイレクトすることができます。例えばヨドバシ.comの書籍検索は 'https://www.yodobashi.com/category/81001/?word='

Amazon商品ページからhontoの検索結果を開くbookMarklet|とものり|note

使い方

  1. 適当なサイトをブックマークする。
  2. 登録したブックマークを編集、上のコードをURL欄に入力して保存する。名前も分かりやすいように変えるといい。
  3. Amazonの商品ページで本ブックマークレットを選択して実行すると、hontoでの検索結果が別タブで開く。

2021-07-25更新

最近機能しなくなったので修正した。

とりあえず「『ISBN-13 : 』とその直後の文字列を検索」するようにしていた箇所を「『978-』で始まる文字列を検索」するように変更したら機能したのでそのように修正した。これだと接頭記号の「978」が枯渇して「979」を使っている本は引っかからないが、現状の和書では存在しないので個人的にはこれで十分。JavaScript全く分かっていないド素人なので、もっといい記述にできる人がいたら教えて下さい。

本当はhontoの検索結果ではなく個別ページに直接飛べるといいのだけどな、と思って探していたら以下のブックマークレットを見つけた。もうこちらのものでよい気もする。ただ、これだとパス(URL)内の「/dp/」に続くASIN文字列を抽出しているようなので、AmazonのURL内で「/gp/product/」にASIN文字列が続いている場合などでは機能しない。

そもそもhontoの個別ページってISBNから飛べるんだな、と調べたら以下のURLで個別ページにリダイレクトされる模様。末尾のチェックデジットを消すのか……。

http://honto.jp/redirect.html?bookno={ハイフンなし13桁ISBNのチェックデジット抜き}