Scraperwiki Twitter查询

问题描述:

请原谅我,因为我对scraperwiki和Twitter挖掘的知识有限。Scraperwiki Twitter查询

我有以下代码刮微博数据。不过,我想编辑代码,只给我在特定日期为纽约进行地理标记的结果(比方说,2013年4月1日)。你知道我应该怎么做?

############################################################################### 
# Twitter srcaper for the term 'hello'. 
############################################################################### 

import scraperwiki 
import simplejson 

# retrieve a page 
base_url = 'http://search.twitter.com/search.json?q=' 
q = 'hello' 
options = '&rpp=10&page=' 
page = 1 

while 1: 
    try: 
     url = base_url + q + options + str(page) 
     html = scraperwiki.scrape(url) 
     #print html 
     soup = simplejson.loads(html) 
     for result in soup['results']: 
      data = {} 
      data['id'] = result['id'] 
      data['text'] = result['text'] 
      data['from_user'] = result['from_user'] 
      data['created_at'] = result['created_at'] 
      # save records to the datastore 
      scraperwiki.datastore.save(["id"], data) 
     page = page + 1 
    except: 
     print str(page) + ' pages scraped' 
     break 

除了q,使用查询参数geocodeuntil。见Twitter API documentation的这一页。请注意,您不能使用搜索API来查找比about a week更早的推文。

此外,它更容易使用urllib.urlencode()来构建你的查询,例如像

query_dict = {'q':'search term(s)', 'geocode':'37.781157,-122.398720,25mi', 'until':'2013-05-10'} 
query = urllib.urlencode(query_dict) 
response = urllib.urlopen(basic_url + query).read() 

更新:请参阅this example scraper,您可以复制和适应您的需求。

+0

非常感谢!我非常感谢你的帮助。如果不是太麻烦,我想澄清一件事。我希望能够使用地理编码坐标将此输出提供给ArcGIS。有没有办法用打印输出的坐标来调整这个结果?结果在result_json ['results']: #print结果 scraperwiki.sqlite.save(unique_keys = ['id'],data = result,table_name =“Tweets”) – user2368126 2013-05-10 01:53:42

+0

您可以添加刚刚搜索的坐标你把日期放入SQLite表中:'result ['geocode'] = geocode'我已经调整了刮刀。 – 2013-05-10 02:26:31

+0

非常有帮助。谢谢!! – user2368126 2013-05-10 10:37:14