それ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
思っていた以上にさくっと作れました。
正規表現って面白いです。