ReadTimeoutError: Twitter Streaming API
ReadTimeoutError: Twitter Streaming API
我想收到一些关于攻击性狗的推文。我的关键字在代码中指定。都是指德国牧羊犬(In Spanish "pastor alemán")。
例如,在 2015 年 2 月 23 日发布的其他推文中,我希望获得完全符合关键字的 this one。
我执行了下面给出的代码,等待大约 1 小时后出现以下错误:
requests.packages.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='stream.twitter.com', port=443): Read timed out.
443端口好像有问题,怎么解决?
P.S。该代码适用于 "python, javascript".
等关键字
更新:
我注意到如果我用英语写关键字,代码会检索一些推文,比如 "German shepherd aggressive"。但随后我收到另一条错误消息:
socket.error: [Errno 10054] An existing connection was forcibly closed by the remote host
我的代码:
from tweepy.streaming import StreamListener
from tweepy import OAuthHandler
from tweepy import Stream
import time
CONSUMER_KEY = "..."
CONSUMER_SECRET = "..."
ACCESS_TOKEN = "..."
ACCESS_TOKEN_SECRET = "..."
class listener(StreamListener):
def on_data(self, data):
try:
print data
saveFile = open('raw_tweets.json', 'a')
saveFile.write(data)
saveFile.write('\n')
saveFile.close()
return True
except BaseException, e:
print 'failed ondata,', str(e)
time.sleep(10)
pass
def on_error(self, status):
print status
if status == 420:
return False
if __name__ == '__main__':
auth = OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
stream = Stream(auth, listener())
keywords = ['pastor aleman agresivo','pastor aleman muerde',
'pastor aleman mata','pastor aleman muerte',
'pastor aleman peligroso','pastor aleman peligro',
'pastor aleman adiestramiento']
stream.filter(track=keywords)
捕获这些错误并重新启动流。错误是正常的。由于您无法控制的多种原因,连接可能会中断。此外,如果 90 秒后没有 activity,Twitter 将关闭连接。
编辑:
有人使用 tweepy 发布了一个 example,它做的事情与您需要的类似。
我想收到一些关于攻击性狗的推文。我的关键字在代码中指定。都是指德国牧羊犬(In Spanish "pastor alemán")。 例如,在 2015 年 2 月 23 日发布的其他推文中,我希望获得完全符合关键字的 this one。 我执行了下面给出的代码,等待大约 1 小时后出现以下错误:
requests.packages.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='stream.twitter.com', port=443): Read timed out.
443端口好像有问题,怎么解决?
P.S。该代码适用于 "python, javascript".
等关键字更新: 我注意到如果我用英语写关键字,代码会检索一些推文,比如 "German shepherd aggressive"。但随后我收到另一条错误消息:
socket.error: [Errno 10054] An existing connection was forcibly closed by the remote host
我的代码:
from tweepy.streaming import StreamListener
from tweepy import OAuthHandler
from tweepy import Stream
import time
CONSUMER_KEY = "..."
CONSUMER_SECRET = "..."
ACCESS_TOKEN = "..."
ACCESS_TOKEN_SECRET = "..."
class listener(StreamListener):
def on_data(self, data):
try:
print data
saveFile = open('raw_tweets.json', 'a')
saveFile.write(data)
saveFile.write('\n')
saveFile.close()
return True
except BaseException, e:
print 'failed ondata,', str(e)
time.sleep(10)
pass
def on_error(self, status):
print status
if status == 420:
return False
if __name__ == '__main__':
auth = OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
stream = Stream(auth, listener())
keywords = ['pastor aleman agresivo','pastor aleman muerde',
'pastor aleman mata','pastor aleman muerte',
'pastor aleman peligroso','pastor aleman peligro',
'pastor aleman adiestramiento']
stream.filter(track=keywords)
捕获这些错误并重新启动流。错误是正常的。由于您无法控制的多种原因,连接可能会中断。此外,如果 90 秒后没有 activity,Twitter 将关闭连接。
编辑: 有人使用 tweepy 发布了一个 example,它做的事情与您需要的类似。