2013-07-13 56 views
7

鸣叫我已经读了很多关于这一部分,我发现了什么是写的地理编码和搜索鸣叫 例如 https://api.twitter.com/1.1/search/tweets.json?geocode=37.781157,-122.398720,1mi&count=10我们怎样才能从特定国家

根据我在推特网站上找到

返回位于给定经度/纬度给定半径范围内的用户的推文。 使用半径修改器时,将考虑最多1,000个不同的“子区域”。 示例值:37.781157,-122.398720,1mi

问题!我们如何定义或绘制经纬度?我试过谷歌地图,但我只得到一个点,然后我可以在这一点上加上英里数,但这还不够,我希望整个国家被纳入,这可能吗?

回答

14

一种方法是使用twitter geo search API,获取地点id,然后使用place:place_id执行常规搜索。例如,使用tweepy

import tweepy 

auth = tweepy.OAuthHandler(..., ...) 
auth.set_access_token(..., ...) 

api = tweepy.API(auth) 
places = api.geo_search(query="USA", granularity="country") 
place_id = places[0].id 

tweets = api.search(q="place:%s" % place_id) 
for tweet in tweets: 
    print tweet.text + " | " + tweet.place.name if tweet.place else "Undefined place" 

另请参见这些线程:

UPD(使用相同的例子中的python-twitter上):

from twitter import * 


t = Twitter(auth=OAuth(..., ..., ..., ...)) 

result = t.geo.search(query="USA", granularity="country") 
place_id = result['result']['places'][0]['id'] 

result = t.search.tweets(q="place:%s" % place_id) 
for tweet in result['statuses']: 
    print tweet['text'] + " | " + tweet['place']['name'] if tweet['place'] else "Undefined place" 

希望有所帮助。

+0

多数民众赞成在一个非常好的主意,将尝试此..非常感谢你 – user2490790

+0

有没有办法做同样的事情,但与python-twitter包装? – user2490790

+0

当然,我已经添加了一个例子。请检查。 – alecxe