问题得到解决,在接受的帖子中找到解决方案
我正在尝试收集50条来自指定地理区域的推文。我下面的代码将打印50条推文,但其中很多都有" NONE"用于坐标。这是否意味着这些推文带有" NONE"是不是从指定区域生成的?你能解释一下这里发生了什么吗?如何从这个指定的地理区域收集50条推文?提前谢谢。
var energyEl = document.getElementById('energy');
if (energyEl) {
energyEl.innerHTML = ...
}
结果如下:
# Import Tweepy, sys, sleep, credentials.py
try:
import json
except ImportError:
import simplejson as json
import tweepy, sys
from time import sleep
from credentials import *
# Access and authorize our Twitter credentials from credentials.py
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
# Assign coordinates to the variable
box = [-74.0,40.73,-73.0,41.73]
#override tweepy.StreamListener to add logic to on_status
class MyStreamListener(tweepy.StreamListener):
def __init__(self, api=None):
super(MyStreamListener, self).__init__()
self.counter = 0
def on_status(self, status):
record = {'Text': status.text, 'Coordinates': status.coordinates, 'Created At': status.created_at}
self.counter += 1
if self.counter <= 50:
print record
return True
else:
return False
def on_error(self, status_code):
if status_code == 420:
#returning False in on_data disconnects the stream
return False
myStreamListener = MyStreamListener()
myStream = tweepy.Stream(api.auth, listener=myStreamListener)
myStream.filter(locations=box, async=True)
print myStream
答案 0 :(得分:3)
来自文档:
只有地理定位推文下降 将包含在请求的边界框内 - 与搜索不同 API,用户的位置字段不用于过滤推文。
保证响应中的推文来自提供的边界框。
边界框过滤器如何工作?
流API使用以下启发式来确定是否 给予推文属于一个边界框:
如果填充了坐标字段,则将针对边界框测试其中的值。请注意,此字段使用geoJSON 订单(经度,纬度)。
如果坐标为空但填充了地点,则会检查就地定义的区域是否与位置边界框相交。 任何重叠都会匹配。如果上面列出的规则都不匹配,则 推文与位置查询不匹配。
同样,这意味着坐标字段可以是None但是bbox过滤器可以保证从边界框区域返回推文
来源:https://dev.twitter.com/streaming/overview/request-parameters#locations
修改:place
是响应中与coordinates
类似的字段。