Google App Engine Test (source)
ちなみに中身はこんな感じ。
フィードの解析に Universal Feed Parser を利用している。 feedparser.py を同じディレクトリに放り込んでおけばOK。
# -*- coding: utf-8 -*- from google.appengine.api import urlfetch from google.appengine.ext import webapp import wsgiref.handlers import cgi, feedparser, re # Amazon ベストセラーフィードの URL feed_url = 'http://www.amazon.co.jp/rss/bestsellers/books/466280?num=100' # 画像 URL 検索のための正規表現 re_img_url = re.compile('img src="(http://ec.\.images[^"]*\.jpg)"') # エントリーをリンク付画像に変換する関数 def make_image(entry): # 画像へのリンクを検索 match = re_img_url.search(entry.description) # マッチしなければ空白にする if not match: return '' # 画像サイズの調整 url = match.group(1).replace('_SL500_SS150_', '_SY120_') # 画像の生成 return '<a href="%s" target="_blank">' % entry.link + \ '<img border="0" src="%s" /></a>' % url class MainPage(webapp.RequestHandler): def get(self): # フィードの取得 result = urlfetch.fetch(feed_url) # 失敗した場合はサーバーエラーにしてしまう if result.status_code != 200: self.error(500) return # フィードの解析 entries = feedparser.parse(result.content).entries # 本文の生成 body = ''.join(map(make_image, entries)) # HTML の生成 html = u''' <html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head><body bgcolor="#406040"> <h2>電脳書店平積みコーナー</h2> %s<p>Amazon のコミックセクションのベストセラーを表示しています。</p> </body></html>''' % body # レスポンスの出力 self.response.out.write(html.encode('utf-8')) if __name__ == "__main__": application = webapp.WSGIApplication([('/', MainPage)], debug = True) wsgiref.handlers.CGIHandler().run(application)