nantekkotai achieves

過去書いたものの集積所。この場所が更新されることはない。

Google App Engine上でXMLをパースする

http://yamashita.dyndns.org/blog/google-app-engine-xml/
こちらのサイトを参考に自分のブログのフィードを解析しようと試みた、がなぜかうまくいかない。
そこでElementTreeについて検索して調べると、以下のサイトにこのようなことが書いてある。
http://python.matrix.jp/modules/ElementTree.html

「.//comment」であれば、子孫の全ての「comment」タグのエレメントを見つけてきます。

山下氏のサイトではこれが、「./status」になっていた。自分はこれをそのまま「./item」でブログのフィードを解析しようとして出来なかったみたいだ。

以下に実際に解析したソースコードを掲載する。

import wsgiref.handlers
import xml.etree.ElementTree as etree
from google.appengine.ext import webapp
from google.appengine.api import urlfetch

class MainHandler(webapp.RequestHandler):
  def get(self):
    url = 'http://www.nantekkotai.com/feed'
    xml = urlfetch.fetch(url).content
    dom = etree.fromstring(xml)
    for st in dom.findall('.//item'):
        title = st.findtext('title').encode('utf-8')
        desc  = st.findtext('guid').encode('utf-8')
        print "%s-%s\n" % (title, desc)

def main():
  application = webapp.WSGIApplication([('/', MainHandler)],
                                       debug=True)
  wsgiref.handlers.CGIHandler().run(application)


if __name__ == '__main__':
  main()