使用 Tweepy 从 Twitter 获取特定位置的推文
Get location specific tweets from Twitter using Tweepy
我正在尝试使用 Tweepy 从特定位置获取推文,但是当我 运行 代码
时出现此错误
raise TweepError("Wrong number of locations points, "
tweepy.error.TweepError: Wrong number of locations points, it has to be a multiple of 4
在我的代码中,我尝试从纽约市获取带有 NY 位置坐标的推文。我怎样才能单独从纽约获得推文?我的猜测是使用 x,y 和 y,z 之间的一系列坐标。我该怎么做?
这是我的代码:
class StdOutListener(StreamListener):
""" A listener handles tweets are the received from the stream.
This is a basic listener that just prints received tweets to stdout.
"""
def on_data(self, data):
try:
print(data)
saveFile = open('newtweets.csv', 'a')
saveFile.write(data)
saveFile.write('/n').encode("utf-8")
saveFile.close()
return True
except BaseException:
print ('failed ondata')
time.sleep(5)
def on_error(self, status):
print(status.encode("utf-8"))
if __name__ == '__main__':
l = StdOutListener()
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
#ASK FOR KEYWORD TO COLLECT DATA
user_keyword=input("What keyword do you want to mine?")
stream = Stream(auth, l)
stream.filter(locations=[40.7127,74.0059], track=[user_keyword])
需要4个坐标。纽约,例如:
stream.filter(locations=[-74.1687,40.5722,-73.8062,40.9467])
Here 是让您绘制边界框的网站的第一个 google 结果。 Select 页面左下角的 CSV 格式。
请务必注意,如本 post 中所述,您不能同时按位置和关键字进行过滤。
我正在尝试使用 Tweepy 从特定位置获取推文,但是当我 运行 代码
时出现此错误raise TweepError("Wrong number of locations points, "
tweepy.error.TweepError: Wrong number of locations points, it has to be a multiple of 4
在我的代码中,我尝试从纽约市获取带有 NY 位置坐标的推文。我怎样才能单独从纽约获得推文?我的猜测是使用 x,y 和 y,z 之间的一系列坐标。我该怎么做?
这是我的代码:
class StdOutListener(StreamListener):
""" A listener handles tweets are the received from the stream.
This is a basic listener that just prints received tweets to stdout.
"""
def on_data(self, data):
try:
print(data)
saveFile = open('newtweets.csv', 'a')
saveFile.write(data)
saveFile.write('/n').encode("utf-8")
saveFile.close()
return True
except BaseException:
print ('failed ondata')
time.sleep(5)
def on_error(self, status):
print(status.encode("utf-8"))
if __name__ == '__main__':
l = StdOutListener()
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
#ASK FOR KEYWORD TO COLLECT DATA
user_keyword=input("What keyword do you want to mine?")
stream = Stream(auth, l)
stream.filter(locations=[40.7127,74.0059], track=[user_keyword])
需要4个坐标。纽约,例如:
stream.filter(locations=[-74.1687,40.5722,-73.8062,40.9467])
Here 是让您绘制边界框的网站的第一个 google 结果。 Select 页面左下角的 CSV 格式。
请务必注意,如本 post 中所述,您不能同时按位置和关键字进行过滤。