【问题标题】:Twitter Streaming API connection working well but getting kicked out after few tweetsTwitter Streaming API 连接运行良好,但在几条推文后被踢出
【发布时间】:2015-04-10 04:35:12
【问题描述】:

我有一个用于 twitter 的流式 API 脚本,它可以提取推文并且运行良好。几周前,它停止提取数据。所以我们不得不重新启动 EC2 服务器并重新启动它。现在的问题是我们可以连接到 API,但是在发送了几条推文之后,我们就断开了连接。

以前有人遇到过这个问题吗?

类 MyStreamer(TwythonStreamer):

def getTimestamp(self,created_at):
    '''
    Returns a UNIX TIMESTAMP from a Twitter formatted date.
    '''     
    try:
        stripped = time.strptime(created_at,'%a %b %d %H:%M:%S +0000 %Y')
        yy = time.strftime('%Y', stripped)
        mm = time.strftime('%m', stripped)
        dd = time.strftime('%d', stripped)
        h = time.strftime('%H', stripped)
        m = time.strftime('%M', stripped)
        s = time.strftime('%S', stripped)
        return yy+"-"+mm+"-"+dd+" "+h+":"+m+":"+s
    except:
        return False

def on_success(self, data):
    if 'text' in data:
        #print data['user']['screen_name'], self.getTimestamp(data['created_at']), "...",
        cursor.execute('INSERT INTO `raw_tweet` (`id`,`id_str`,`text`,`screen_name`,`created_at`,`is_stream`) VALUES (%s, %s, %s, %s, %s, %s) ON DUPLICATE KEY UPDATE id=id;',                       
               (data['id'], data['id_str'], data['text'], data['user']['screen_name'], self.getTimestamp(data['created_at']),1))
        db.commit()
        #print "Inserted."       

def on_error(self, status_code, data):
    print status_code
    # Want to stop trying to get data because of the error? Uncomment the next line!
    # self.disconnect()

def on_timeout():
    print "Twitter time-out!"

【问题讨论】:

  • 当它停止时会发生什么?是否抛出异常?
  • 不,它根本没有抛出任何异常,这很有趣。
  • 您是否阅读过 Twitter 上有关速率限制的文档?您是否曾经每 15 分钟收集超过 180 条消息?
  • 是的,我已经读过了。我查了一下,账户没有被暂停。所以不可能是我达到了速率限制。 twitter 根本不提供电子邮件支持服务吗?
  • 一分钱一分货:)

标签: api twitter streaming


【解决方案1】:

是的,任何开始使用 Twitter 的免费流媒体 API 的人最终都将不得不应对 Twitter 的速率限制行为并进行设计。有些事情您可以做的事情比重新启动您的 ec2 实例要简单。我建议多研究一下。

【讨论】:

    猜你喜欢
    • 2013-06-07
    • 1970-01-01
    • 1970-01-01
    • 2015-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多