Pandora Pocket

IT系と日常系の備忘録。三日坊主。

普段からKindleで電子書籍を購入してるのですが、Amazonって検索結果が妙に使い勝手が悪く、新刊を見落としてたこともしばしば。

きんどうなどの専門サイトで情報を仕入れてたんですが、当然全部が全部載るわけでもなく。
で、自分で検索用のアプリを作ろうと思ってちまちま書いてたもののUI作るのが面倒で放置しているうちに、しんじさん(id:Shinji_Japan)がAmazonのKindle検索用Chrome拡張を公開されました。

React/TypeScriptでKindle本を検索できるChrome拡張を作りました React/TypeScriptでKindle本を検索できるChrome拡張を作りました。 以下の特徴があります ・一覧性が高い ・Unlimited限定での検索ができる ・検索結果に対してローカルで絞り込みできる ・先読みによりページングが速い インストールはこちら chrome ウェブストア インストールすると右上に虫眼鏡アイコンが追加されるのでそれをクリックすると検索画面が起動します 使ってみた動画 https://www.youtube.com/watch?v=ak9sp9Sh-aI&featur…
[はてなブックマークで表示]

要望を複数対応していただいて必要十分なものになったため、アプリを作る必要がなくなったので、アプリを作るために調べていた情報だけ備忘録がてら纏めます。

基本

KindleストアのURLはまずこんな感じ。

https://www.amazon.co.jp/s?k=ABC&i=digital-text&__mk_ja_JP=カタカナ&ref=nb_sb_noss_2

これだとABCというキーワードに対しての検索になります。
k のクエリ文字列がキーワードを表します。複数キーワードがある場合は+で連結。

上記URLのクエリ文字列のうち、__mk_ja_JPref は検索結果に特に影響を与えない不要なものなので、削除。

i=digital-text がKindleストアを表しているものの、 rh のクエリ文字列に対して n:2250738051 を指定するほうが確実。

https://www.amazon.co.jp/s?k=ABC&rh=n:2250738051

Kindle Unlimited対象商品のみ検索

Unlimited対象商品だけを検索したい場合は、クエリ文字列rhに対して、

p_n_feature_nineteen_browse-bin:3169286051

を追加。すでにrhの文字列にほかの要素がある場合は , で連結。

https://www.amazon.co.jp/s?k=ABC&rh=n:2250738051,p_n_feature_nineteen_browse-bin:3169286051

なお、Prime Readingの場合は p_n_special_merchandising_browse-bin:5304495051 を指定する。

Kindleのカテゴリを指定

上記だと、和書だけでなく洋書も混ざってしまうため、非常に探しづらい。
こういう時はカテゴリを指定してやります。

例えば和書を指定する場合、 n:2275256051 を指定。

https://www.amazon.co.jp/s?k=ABC&rh=n:2250738051,n:2275256051

nはBrowseNodeを表しているらしい。
カテゴリ一覧は下記のQiitaが詳しい。

https://qiita.com/kobake@github/items/88001f62983211027f63

期間指定

公開された期間を指定したい場合、p_n_date:yyyymmdd-yyyymmddrhクエリに対して追加してやる。

ex)2019年11月1日から11月30日の期間に公開されたKindle Unlimited

https://www.amazon.co.jp/s?k=ABC&rh=n:2250738051,n:2275256051,p_n_date:20191101-20191130,p_n_feature_nineteen_browse-bin:3169286051

価格指定

rhクエリ文字列に対して、p_36 を追加してやることで価格を指定して検索できます。 例えば100円以上1000円以下のKindle本を探したい場合は

https://www.amazon.co.jp/s?k=ABC&rh=n:2250738051,n:2275256051,p_36:10000-100000

こんな感じ。実に謎なんですが、実際に探したい金額の100倍の値を指定してやらないといけない模様。

期間限定お試しの本を探したいときには p_36:-0 と上限を0にしてやればOK。

昔は low-price high-price で指定しており、今でも使えるんですが、p_36 に書き換えられる模様。今後も使えるかわからないので、 p_36の利用を推奨。
なお、 high-price だと探したい金額に100掛けしなくても問題なし。