なんのこっちゃという感じですが、具体的にやりたいことは以下の通り
何故こんなことをしたいかというと、 Kindle 本は DRM をクラックする確実な手段があります。 DRM をクラックすることは違法ですが、 Amazon という企業が消滅した時に、購入した本が読めなくなるのは困ります。 Amazon が消滅するときは世紀末のような社会でしょうから、 DRM のクラック程度の犯罪が問題になることは無いでしょう。 AZW3 をローカルに保存しておけば、その時がくれば DRM をクラックすればいいということになります。
以上の考えは半分本気、半分はまあスクレイピングしづらそうなものがあればやってみたい、というだけです。
JavaScript を含まないページのスクレイピングはどうとでもなります。 JavaScript を含むページのスクレイピングは通常 phantomjs あたりが用いられます。
ではブラウザを自動で操作してファイルをダウンロードしたい場合どうすればいいかというと、 phantomjs でも一応できます。
この糞長い議論を読んで最新のやり方がどんな感じなのか各自学んでください。ですがこれとてもではないですがオススメできません。デカい容量のファイルはそもそもダウンロードできないだとか、イベントがちゃんと発火しないなど安定してないだとか、そもそも phantomjs 自体が、、、とかいろいろつらみがあります。
そこでどうするか。
本物のブラウザの操作を自動化するのが一番楽だというのが今のところの僕の結論です。
Tampermonkey をインストールした Chrome をサーバー上で実行し、 user.js の組み合わせで操作を自動化するというものです。
ファイルのダウンロードも本物のブラウザなので安定していけます。
実行結果のレポートなどは XHR Level2 かなんかで自分のサーバーに送るように user.js 書けばいいだけです。
このソリューションを取った場合でも Amazon の操作自動化というタスクにはいろいろつらみがあるんですが、そこはまあ各自気持ちでやっていきましょう。
ブラウザを操作してファイルをダウンロードするというタスクを自動化する辛い仕事をアサインされた際にはこの記事を思い出していただければ幸いです。