推特流 API 与 Python Tweepy
Twitter Streaming API with Python Tweepy
我一直在使用 Tweepy 库玩 Twitter Streaming API。我开始关注自己的帐户并在发布推文时流式传输自己的推文,效果很好。
然后我尝试传输相当大区域的推文 ([30,-85,31,-84]),我最初似乎没有收到任何数据。然后我开始收到 'Location Deletion Notices' 或 'scrub_geo' 消息,并且此后只收到过这些消息。我将我的代码改回了以前的工作跟随代码,但我继续收到 'scrub_geo' 消息,而不是来自我的个人资料的状态。
这是我正在使用的脚本:
# Import the necessary methods from tweepy library
from tweepy.streaming import StreamListener
from tweepy import OAuthHandler
from tweepy import Stream
# Other libs
import json
# Variables that contains the user credentials to access Twitter API
access_token = "<my_access_token>"
access_token_secret = "<my_secret_token>"
consumer_key = "<my_consumer_key>"
consumer_secret = "<my_consumer_secret>"
# This is a basic listener that just prints received tweets to stdout.
class StdOutListener(StreamListener):
def on_data(self, data):
#try:
# json_data = json.loads(data)
# print json_data['created_at'] + " " + data['text']
#except:
print "Data " + str(data)
return True
def on_error(self, status):
print "Error " + str(status)
if status == 420:
print("420 error.")
return False
if __name__ == '__main__':
# This handles Twitter authetification and the connection to Twitter Streaming API
l = StdOutListener()
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
stream = Stream(auth, l)
# Start streaming with right parameters
#tallahassee=[30,-85,31,-84]
#stream.filter(locations=tallahassee) <---- previously used
stream.filter(follow="<my_user_id>")
你的坐标颠倒了。由于我们正在处理 GeoJSON
总是做 (long,lat,alt)
或 (x,y,z)
因此您需要提供 tallahassee=[-85,30,-84,31]
。始终先提供经度,就像您在数学中所做的那样 (x,y)
。
有一些地方,例如 google 地图,会先处理纬度。你只需要小心你正在处理的正确格式。
我一直在使用 Tweepy 库玩 Twitter Streaming API。我开始关注自己的帐户并在发布推文时流式传输自己的推文,效果很好。
然后我尝试传输相当大区域的推文 ([30,-85,31,-84]),我最初似乎没有收到任何数据。然后我开始收到 'Location Deletion Notices' 或 'scrub_geo' 消息,并且此后只收到过这些消息。我将我的代码改回了以前的工作跟随代码,但我继续收到 'scrub_geo' 消息,而不是来自我的个人资料的状态。
这是我正在使用的脚本:
# Import the necessary methods from tweepy library
from tweepy.streaming import StreamListener
from tweepy import OAuthHandler
from tweepy import Stream
# Other libs
import json
# Variables that contains the user credentials to access Twitter API
access_token = "<my_access_token>"
access_token_secret = "<my_secret_token>"
consumer_key = "<my_consumer_key>"
consumer_secret = "<my_consumer_secret>"
# This is a basic listener that just prints received tweets to stdout.
class StdOutListener(StreamListener):
def on_data(self, data):
#try:
# json_data = json.loads(data)
# print json_data['created_at'] + " " + data['text']
#except:
print "Data " + str(data)
return True
def on_error(self, status):
print "Error " + str(status)
if status == 420:
print("420 error.")
return False
if __name__ == '__main__':
# This handles Twitter authetification and the connection to Twitter Streaming API
l = StdOutListener()
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
stream = Stream(auth, l)
# Start streaming with right parameters
#tallahassee=[30,-85,31,-84]
#stream.filter(locations=tallahassee) <---- previously used
stream.filter(follow="<my_user_id>")
你的坐标颠倒了。由于我们正在处理 GeoJSON
总是做 (long,lat,alt)
或 (x,y,z)
因此您需要提供 tallahassee=[-85,30,-84,31]
。始终先提供经度,就像您在数学中所做的那样 (x,y)
。
有一些地方,例如 google 地图,会先处理纬度。你只需要小心你正在处理的正确格式。