« python で cgi | メイン | 国家資格という紙切れを何が何でも手に入れろ!SE編 --- ヘルプマンより »

amazon のベストセラーランキング JSON を作る

それPla! な人には常識な話かもしれませんが、正規表現のお勉強と言うことで、amazon の本のベストセラーページを取得して、正規表現でランキングデータを抜き取って、JSON形式にしてファイルに保存するCGIを作りました。

本当はファイルに出力するようにしたのは、1時間に1回しか後進されない静的なページの情報なので、こちらも静的なデータを作っておいた方が良いかと思ったからです。

で、昨日書いたように言語はPythonです。

↓こんな感じ。

import httplib
import urllib
import string
import re

def book_ranking(n):
data = urllib.urlopen('http://www.amazon.co.jp/gp/bestsellers/books/?pg='+n).read()
list = re.findall('<td align=\"center\" valign=\"top\"><a href=\"(.+?)\".+?img src=\"(.+?)\".+?alt=\"(.+?)\".+?/></a>',data)
return list

JSON = '['
pages = ['1','2','3','4']
for page in pages:
list = book_ranking(page)
i = 0
for tmp in list:
if i != 0:
JSON += ','
JSON += '{ "uri":"' + tmp[0] + '" ,"imgpath":"' + tmp[1] +'" ,"item":"' + tmp[2] + '"}'
i = i + 1
JSON += ']'
f = open('./bookranking.txt','w')
f.write(JSON)
f.close()

ランキングは4ページに渡って100位まであるので、ループで回して取得しています。

↓得られたファイルはこんな感じ

http://www.chrisryu.com/ranking/bookranking.txt

思っていた以上にさくっと作れました。

正規表現って面白いです。