そういうものを作ってみた。もちろん
amazonでランキング1位になった本を淡々と記録するブログ をパクッた にインスパイアされて作ったもの。基本的には 1日 1回自動処理でランキングを取得し、前日のランキングから 1位に変動があった場合に自動的にエントリーを作成するようになっている。これもしばらく動かしておくと面白いかも知れない。RSSリーダにいれておくと便利かも?
2
Amazon 売上ランキング 一覧取得の方法
どうやら
AWS3/ECS4 では Amazon 売上ランキング一覧を取得するAPIは無い そうなので、
分野別 コミックトップセラー の HTML から抽出することにした。たぶん
Amazlet も同じやり方をしてるのだと思う。HTML の
<a href=.... から単純に
ASIN/([0-9A-Z]+)/ の部分を抜き出して uniq! しているだけ。
3
Amazon Web Service with libamazon-ruby
AWS へのアクセスは libamazon-ruby と言うパッケージが debian にあったのでそのまま利用した。例えば特定の ASIN に対してのリクエストは
#!/usr/bin/env ruby
require 'amazon/search'
$KCODE='UTF-8'
ASSOCIATES_ID = 'yooseenet-22'
DEV_TOKEN = '1TG5Q2YAD9B8314WRDG2'
request = Amazon::Search::Request.new(DEV_TOKEN, ASSOCIATES_ID, 'jp')
asin = '12345678';
request.asin_search(asin,Amazon::Search::HEAVY) do |product|
puts product
end
結果は
product['product_name'] のような Hash like な構造でアクセス出来る。あとは適当に見た目を整えた HTML 形式に出力。libamazon-ruby は他にも Shopping Cart の処理など AWS の機能を色々と使えるようになっているみたい。
4
MovableType 2.x への自動投稿
色々と方法を探したのだがいまいちこれと言うのが見つからず、結局 MySQL に直接 INSERT query を投げ込むことにした。mt_entry と言うのが各記事の table で、基本的にはこれだけ追加すれば完結する。正確には mt_placement と言う table が各記事毎の Category 情報を保持しているようなのでこれも弄らないといけないのだが、面倒なので後回しにした。コンテンツの rebuild は
#!/usr/bin/env perl
use lib qw( lib );
use MT;
my $mt = MT->new;
$mt->rebuild(BlogID=>4, Force=>1) or die $mt->errstr;
程度のものを書いて実行すれば良いようだ。
5
しかし
PLUTO(2) が強すぎて当分首位から退きそうにないな…。
それにしてもPLUTO強いなぁ…