はじめてpython書いた。public_timelineを取得してダンプするだけだけど。
GAEのキットを使った。これサーバ起動とかプロジェクト(「アプリケーション」)の設定ファイルとか、そういうの自動生成してくれるので便利だ。
ただ、例の'ascii' codec can't encode characterってエラーが出たり出なかったりしてよくわからない。
それに、なんだかよくわからずに書いてある「おまじない」部分がおおすぎてどうしようもない。「webapp」というのはGoogle謹製のウェブフレームワークなのだけど。WSGIってYAPC(Perlのカンファレンス)でも聞いたなーとかそんなレベルなんだもん、Pythonだけ勉強しても足りないわけです。
これをコピペして:
http://sites.google.com/site/2ca3/gae-pde-xmlwo-shutoku-shi-te-pasu
さらにGAEのガイドにあるhelloworldとか、あと自動生成されたデフォルトのコードもまじってる感じ。どうもなんか余計なことをたくさんしている気がしてならないんだけど、消すのもめんどくさいという。ドイヒー。よいこはまねしないように。
# vim:fileencoding=utf_8 import sys import codecs sys.stdout = codecs.getwriter('utf-8')(sys.stdout) from google.appengine.ext.webapp.util import run_wsgi_app from google.appengine.ext import webapp from google.appengine.api import urlfetch from xml.etree import ElementTree import datetime import twython import simplejson as json class MainHandler(webapp.RequestHandler): def get(self): self.response.headers['Content-Type'] = 'text/html' self.response.out.write('Hello world!') result = urlfetch.fetch('http://twitter.com/statuses/public_timeline.xml') if result.status_code == 200: xml = ElementTree.fromstring(result.content) for e in list(xml): self.response.out.write(e.findtext('./user/id')) self.response.out.write(e.findtext('./text')) self.response.out.write(datetime.datetime.strptime(e.findtext('./created_at'), '%a %b %d %H:%M:%S +0000 %Y')+datetime.timedelta(hours=9)) self.response.out.write('<img src="' + e.findtext('./user/profile_image_url') + '" />') self.response.out.write(e.findtext('./user/screen_name')) self.response.out.write(e.findtext('./user/name')) application = webapp.WSGIApplication([('/', MainHandler)],debug=True) def main(): run_wsgi_app(application) if __name__ == '__main__': main()