BearutifulSoup 使ってみたよ
id:kadoppe の人がYahooSearchをやってたので便乗
http://d.hatena.ne.jp/kadoppe/20070330/1175247772
# -*- coding: utf-8 -*- import urllib import urllib2 import pyexpat from BeautifulSoup import BeautifulSoup class YahooSearchRequest (object): methodurls = dict(web='WebSearchService/V1/webSearch', image='ImageSearchService/V1/imageSearch', video='VideoSearchService/V1/videoSearch', assist='AssistSearchService/V1/assistSearch') baseurl = "http://api.search.yahoo.co.jp/" def __init__(self, appid, query="", mode='web'): self.url = "%s%s" % (self.baseurl, self.methodurls[mode]) self.params = dict(appid=appid, query=query) self.result = None def addQuery(self, query): self.params['query'] = self.params['query'] + " " + query self.result = None return self def __getitem__(self, key): return self.params[key] def __setitem__(self, key, value): self.params[key] = value def asBeautifulSoup(self): result = self.search() return BeautifulSoup(result) def asDictList(self): b = self.asBeautifulSoup() return [dict(title=r('title')[0].string, summary=r('summary')[0].string) for r in b('resultset')[0]('result')] def search(self, force=False): if self.result is None or force: x = urllib2.urlopen(self.requestUrl) self.result = x.read() return self.result @property def queryString(self): return urllib.urlencode(self.params) @property def requestUrl(self): return "%s?%s" % (self.url, self.queryString) @property def query(self): return self.params['query'] appid = '******' # よきにはからってください for x in YahooSearchRequest(appid).addQuery("SPAM").addQuery("EGG").asDictList(): print 'title:', x['title'] print 'summary:', x['summary']
結果のパースをもうちょっと考えた方がいいなぁ