API потоковой передачи Twitter с Python Tweepy
Я играл с Twitter Streaming API, используя библиотеку Tweepy. Я начал с того, что следил за своей учетной записью и транслировал свои собственные твиты по мере их публикации, что работало нормально.
Затем я попытался транслировать твиты довольно большого региона ([30,-85,31,-84]), на которые я изначально не получал никаких данных. Затем я начал получать сообщения "Уведомления об удалении местоположения" или "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>")
1 ответ
Ваши координаты поменялись местами. Поскольку мы имеем дело с GeoJSON
всегда делаю (long,lat,alt)
или же (x,y,z)
Так что вам нужно будет предоставить tallahassee=[-85,30,-84,31]
, Всегда указывайте долготу так же, как вы (x,y)
в математике
В некоторых местах, таких как карты Google, сначала указывается широта. Вы просто должны быть осторожны с тем, в каком формате вы имеете дело.