[2014年版] Amazonでいくら使った?

投稿者: 加藤 淳
投稿日:
カテゴリ: life, programming

12/25 更新;  Amazon の実装が変わって Chrome 最新版との組み合わせで動かなくなっていたものを修正しました。技術解説は最後に。

そろそろ今年はいくら使ったか集計してみましょう^^

amazon

もともともろやさんの書いたコードをちょっといじって使っていたんですが、Gist が MIME タイプを正しく返さなくなったり Amazon の注文履歴ページのレイアウトが変わったりで、うまく動かなくなっていたのを直しました。

あと、元々のコードは合計額を出すだけでしたが、このエントリで紹介するものは、新しいウィンドウが開いて個々の履歴が CSV 形式でフォーマットされて表示されます。

使い方

オリジナルとほぼ一緒です。ただし、最後に新しいウィンドウが開くので、ポップアップブロッカーなどがインストールされている場合は amazon.co.jp を例外に指定するなどして対処する必要があります。

  1. まず https://www.amazon.co.jp/gp/css/order-history/ にアクセスしてログインします。
  2. アドレスバーに以下の文字列をコピー&ペーストします。(最近のブラウザだと先頭の javascript: が消えるので書き足さないとダメみたいです。)
javascript: (function () {
  var d = document;
  var s = d.createElement("script");
  s.src =
    "https://cdn.rawgit.com/arcatdmz/8500521/raw/555ad48b487e790c6079938e771dfa4a8384d10e/amazon-csv.js";
  d.body.appendChild(s);
})();
  1. Enter キーを押すと入力ダイアログが出ます。集計したい年を半角数字で入れるか、全部集計したい場合は all と入力して「OK」をクリックしましょう。
  2. 結果が出るまでしばし待ちましょう。すごくぷるぷるにゃん…
うわぁ
うわぁ

ソースコードなど

この作業で 呼び出している JavaScript のソースコードはGistに置いてあります。CSV のフォーマットを直したい場合など、適当に Fork して使ってください。

なお、ある時から Gist の Raw リンクの HTTP ヘッダが常に MIME タイプ text/plain を返すようになりました。そのままだとセキュリティエラーが出て実行できないので、 rawgit.com というサービスを経由して HTTP ヘッダを直してもらっています。このサービスが信頼できない場合は上記の作業は行わないでください。

何にせよ、ご利用は自己責任でお願いします!

技術解説

基本的にはGist のソースコードに書いてあるコメントを読んでいただければと思います。

12/25 の更新内容: Amazon のサーバサイドの実装が微妙に変わったようで、 https://www.amazon.co.jp/gp/css/order-history/  に対する HTTP リクエストのヘッダに X-Requested-With: XMLHttpRequest がついていると HTML でなく JSON らしきもの(レスポンスヘッダを見ると  application/json-amazonui-streaming という Content-Type が宣言されている)を返してくるようになりました。そこで、X-Requested-With の値を書き換えるようにソースコードを修正しました。