首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Twitter Api Python连接停止错误

Twitter Api Python连接停止错误
EN

Stack Overflow用户
提问于 2017-06-16 19:58:52
回答 1查看 169关注 0票数 1

我使用的是TwitterAPI python库,在获取数据时出现以下错误

代码语言:javascript
复制
File "/Users/danny/.venv/versions/2.7.9/lib/python2.7/site-packages/TwitterAPI/TwitterAPI.py", line 263, in _iter_stream
    raise TwitterConnectionError('Twitter stream stalled')
TwitterConnectionError: Twitter stream stalled

我使用的是python 2.7

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-16 20:44:12

延迟是意料之中的事情,您必须在您的twitter客户端中考虑到它们(以及其他类型的连接错误)。TwitterAPI库确实会检查停顿。当它们发生时,将抛出TwitterConnectionError。这是一个信号,让您简单地重试您的请求。你不需要设置一个90秒的计时器。这是由TwitterAPI为您完成的。为了获得真正健壮的代码,您还应该处理TwitterRequestError。下面是一个处理这两种异常的模板,目的是让你的代码保持运行并保持在Twitter的指导方针之内:

代码语言:javascript
复制
from TwitterAPI import TwitterAPI
api = TwitterAPI(CONSUMER_KEY,
                 CONSUMER_SECRET,
                 ACCESS_TOKEN_KEY,
                 ACCESS_TOKEN_SECRET)

while True:
    try:
        iterator = api.request('statuses/filter', {'track':'pizza'}).get_iterator()
        for item in iterator:
            if 'text' in item:
                print(item['text'])
            elif 'disconnect' in item:
                event = item['disconnect']
                if event['code'] in [2,5,6,7]:
                    # something needs to be fixed before re-connecting
                    raise Exception(event['reason'])
                else:
                    # temporary interruption, retry request
                    break
    except TwitterRequestError as e:
        if e.status_code < 500:
            # something needs to be fixed before re-connecting
            raise
        else:
            # temporary interruption, retry request
            pass
    except TwitterConnectionError:
        # temporary interruption, retry request
        pass
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44588744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档