#!/usr/bin/python # -*- coding: utf-8 -*- import sys import urllib import simplejson def printer(d, indent=''): if isinstance(d, dict): for k in d: print indent+k, printer(d[k], indent+' ') elif isinstance(d, list): print indent + 'item in list length =', len(d) for i in d: print indent+'-'*10 printer(i, indent+ ' ') else: print (d, ) #print indent, str(d).encode('utf-8') def twittersearch(word, since_id=None, page=None): baseurl = "http://search.twitter.com/search.json" #param = urllib.urlencode({'q': u'堺市 中学'}) if page is None: page = 1 param = '?q=%E5%A0%BA%E5%B8%82%20%E4%B8%AD%E5%AD%A6' + '&per_page=20&page=%i'%(page,) #param = '?q=%E5%A0%BA%E5%B8%82%20%E4%B8%AD%E5%AD%A6' + '&since_id=%s'%(since_id,) #ugh! print >> sys.stderr, 'retreiving:', param h = urllib.urlopen(baseurl + param) return simplejson.load(h) all = {} since_id = None page = 1 try: while True: result = twittersearch(None, since_id, page) if 'results' not in result or not len(result['results']): break #since_id = result['max_id'] for item in result['results']: all[item['id']] = item if not since_id or int(item['id']) < int(since_id): since_id = item['id'] printer(result) page += 1 finally: print len(all) print 'done'
since_idが使われていなかったり、()で囲ってprintしたりしているのはまあ、そういうモンだ
0 件のコメント:
コメントを投稿