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
,使用查询参数geocode
和until
。见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,您可以复制和适应您的需求。
非常感谢!我非常感谢你的帮助。如果不是太麻烦,我想澄清一件事。我希望能够使用地理编码坐标将此输出提供给ArcGIS。有没有办法用打印输出的坐标来调整这个结果?结果在result_json ['results']: #print结果 scraperwiki.sqlite.save(unique_keys = ['id'],data = result,table_name =“Tweets”) – user2368126 2013-05-10 01:53:42
您可以添加刚刚搜索的坐标你把日期放入SQLite表中:'result ['geocode'] = geocode'我已经调整了刮刀。 – 2013-05-10 02:26:31
非常有帮助。谢谢!! – user2368126 2013-05-10 10:37:14