带有地理编码的Twitter搜索API几乎不会返回任何命中

时间:2016-03-14 22:17:47

标签: python api twitter

我的请求只返回大约20个点击量。请注意,我将半径设置为5000km这是荒谬的,因为我先使用了50,但命中率太低,所以我增加了它。但即使在5000公里,我仍然得到相同的一些结果。我正在使用Python 3.5

以下是代码:

import tweepy

consumer_key = 'xxxxx'
consumer_secret = 'xxxxxxxxx'
access_token = 'xxxxxxx'
access_token_secret = 'xxxxxxxxxxxxxxx'

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)

api = tweepy.API(auth)
results = api.search(q="Global Warming",geocode="40.7142700,-74.0059,5000km",count=100)
for result in results:
    print (result.text.encode('utf-8'))

2 个答案:

答案 0 :(得分:1)

Twitter限制了过去可以搜索大约一周的时间。你已达到这个限制。如果您检查返回的最后一条推文的created_at字段,您可以自己查看。

答案 1 :(得分:1)

你可能在推文中遗失了:

  • 缺乏位置
  • 位于特定地点的1,000个不同“子区域”之外

使用geocode字段搜索推文时,API将首先搜索指定了地理位置的推文,否则将使用用户个人资料中的位置。

来自Geolocalization上的Search API

  

地理定位:API中没有搜索运算符“near”,   但是有一种更精确的方法来限制给定的查询   使用模板指定的geocode参数的位置   “纬度,经度,半径”,例如,“37.781157,-122.398720,1mi”。   进行地理位置搜索时,搜索API将首先尝试   在查询的地理编码中查找具有纬度/经度的推文   如果没有成功,它将尝试查找由此创建的推文   用户的个人资料位置可以反向地理编码为纬度/经度   在查询的地理编码内,意味着可以接收推文   其中不包括纬度/经度信息。

来自search/tweets doc:

  

使用半径修改器时,最多可考虑1,000个不同的“子区域”。