Google App EngineでAmazon Web Serviceにアクセス。
http://kingyo-bachi.blogspot.com/2008/06/google-app-engineweb.html
を読むのは必須です。ネームスペースが重要なのです。このページがなければ一生悩んでいたかもしれません。
ただし、現在は2008-04-07ではなく、2008-08-19となっているようです。
しかも、Mac版FireFoxでデータを取得すると、こんな感じで表示されてしまい見えません。そのため、現在はなくなったのではないかとかちょっとはまりました。生データで確認することが必要ですね。
また、最初だけでなく、その後findtext等を行う場合もネームスペースを付ける必要があります。そこもはまりました。
というわけで、タイトルを列挙する場合はこんな感じになります。GAEO版です。
`
import xml.etree.cElementTree as etree from google.appengine.api import urlfetch from gaeo.controller import BaseController class SearchresultController(BaseController): def AmazonResult(self): url = 'http://ecs.amazonaws.jp/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=xxx&Operation=ItemSearch&SearchIndex=Books&Title=Harry%20Potter&Version=2008-08-19' xml = urlfetch.fetch(url).content dom = etree.fromstring(xml) namespace ='http://webservices.amazon.com/AWSECommerceService/2008-08-19' items = dom.findall('.//{%s}Item' % namespace) for st in items: title = st.findtext('.//{%s}Title' % namespace).encode('utf-8') self.render(text = title) #self.render(text = xml)
`
Powered by Qumana