Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
12
Help us understand the problem. What is going on with this article?
@yubais

Amazon Kindle の無料サンプルを wget でダウンロードしまくる

More than 5 years have passed since last update.

これを読んで。
Kindle本の立ち読み版(サンプル)をブラウザで閲覧するための新ブックマークレット

Kindleのサンプルって別に専用アプリが無くても、というかAmazonのアカウントさえ無くても読めると知ったので、さっそく自動ダウンロードのスクリプトを書いてみた。

ダウンロードに必要なものは書籍のASIN番号(Amazonの全ての商品に振られている通し番号)であり、Amazonの商品のページで Ctrl+F [ASIN] とすれば見つかる。ISBNを使いたい場合はISBNからASINに変換する方法があった気がするので知りたい人はggr。

小説

novel.sh
wget "http://kindleweb.s3.amazonaws.com/content/$1/gz_sample.html" -O $1.gz
gunzip -d $1.gz
mv $1 $1.html

使用例: ASIN番号 B00GJMUKBC の書籍のサンプルをダウンロードする場合

$ ./novel.sh B00GJMUKBC

B00GJMUKBC.html というファイル名で1個のHTMLファイルが出力される。

漫画

comic.sh
for i in `seq 1 1000`
do
  wget http://kindleweb.s3.amazonaws.com/content/$1/images/img$i.jpg
  # ファイルが見つからなければループを抜ける
  if [ "$?" -ne 0 ]
  then
    exit 1
  fi
  # ファイル名の接頭辞にASIN番号を付与
  mv img$i.jpg $1.$i.jpg
done

使用例: ASIN番号が B009KYCHCG の漫画に対し

$ ./comic.sh B009KYCHCG

B009KYCHCG.1.jpg から始まる連番JPEGとしてダウンロードされる。

解説

ASIN が振られている書籍に対しては、以下のURLにアクセスすればサンプルをHTML形式で閲覧できる。

http://kindleweb.s3.amazonaws.com/content/[ASIN]/gz_sample.html

例として円城塔「Self-Reference Engine」のサンプルは以下のとおり。

このHTMLファイルはgzip圧縮されているため、wgetでダウンロードした後に解凍して拡張子htmlを付与している。

漫画本の場合、このHTMLファイルの中に画像が貼られているが、その画像は(僕の調べた範囲では全て)以下のような連番形式となっている。

http://kindleweb.s3.amazonaws.com/content/[ASIN]/images/img1.jpg

例として岩明均「ヒストリエ」1巻の冒頭数ページを以下に示す。

http://kindleweb.s3.amazonaws.com/content/B009KYCHCG/images/img3.jpg
http://kindleweb.s3.amazonaws.com/content/B009KYCHCG/images/img4.jpg
http://kindleweb.s3.amazonaws.com/content/B009KYCHCG/images/img5.jpg
http://kindleweb.s3.amazonaws.com/content/B009KYCHCG/images/img6.jpg

ただしサンプルが何ページあるかは物によって異なるため、403 Error が出た場合はその時点でループを止めるようにしてある。

12
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
yubais
Webアプリ作る学生 → Python使う研究者 → SF書く小説家。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
12
Help us understand the problem. What is going on with this article?