当前位置: 首页 > 知识库问答 >
问题:

使用Tweepy进行推特直播

戚京
2023-03-14

我使用Tweepy访问流API并将其存储在JSON文件中。代码看起来很好,但我一直得到这个错误:属性错误:'NoneType'对象没有属性'strip'

import sys
import tweepy
import json

consumer_key = 'XXXX'
consumer_secret = 'XXXX'
access_key = 'XXXX'
access_secret = 'XXXX'

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_key, access_secret)
api = tweepy.API(auth)
file = open('today.txt', 'a')

class CustomStreamListener(tweepy.StreamListener):
    def on_status(self, status):
        print (status.text)

    def on_data(self, data):
        json_data = json.loads(data)
        file.write(str(json_data))

    def on_error(self, status_code):
        print >> sys.stderr, 'Encountered error with status code:', status_code
        return True # Don't kill the stream

    def on_timeout(self):
        print >> sys.stderr, 'Timeout...'
        return True # Don't kill the stream

sapi = tweepy.streaming.Stream(auth, CustomStreamListener())
sapi.filter(track=['twitter'])

这里的错误在最后一行。我认为流正在返回null,因此当我试图过滤它时,它给出了错误。请帮忙!

共有2个答案

闻人英韶
2023-03-14

我认为这是一个库问题,今天我的代码也遇到了同样的问题。我看到图书馆不再维护了。也许我们得换个图书馆了。

萧韬
2023-03-14

截至10月18日,Tweepy不再被维护,但这不是问题的原因。

自从10月21日DYN遭到攻击以来,twitter流媒体API一直存在问题。twitter开发者论坛上已经报道了这些情况,twitter员工也意识到了这一问题:https://twittercommunity.com/t/issues-reported-with-streams-since-10-21/76429.

到目前为止,问题的原因还没有明确的答案,但观察到的行为是,与推特任何流媒体endpoint的连接在短时间后都会关闭,通常(尽管并不总是)没有收到任何数据。有时连接在发送响应时关闭,导致无效的JSON。

 类似资料:
  • 我正在尝试使用tweepy(用于twitter的python api)发布推文。我有一个很长的url,使用itty bitty来承载一个降价页面。该链接可以通过twitter网站(此处为tweet)发布,但不能通过api发布。返回的错误表明tweet太长: 我已经确保tweet低于字符限制,减去t.co缩短的URL限制使用的字符(目前每个URL 23个)。不确定下一步要尝试什么?

  • 我想用python和tweepy流我自己的twitter时间线,并使用下面的代码,但它只是打印我一些数字,我没有打印我的时间线twitts。你能帮我吗?

  • 我试图使用Tweepy从特定位置获取推文,但当我运行代码时,会出现此错误 在我的代码中,我尝试从纽约市获取推文,其中包含纽约的位置坐标。我怎样才能从纽约一个人那里得到推特?我的猜测是使用一系列坐标,比如x,y和y,z。我该怎么做呢? 这是我的代码:

  • 我对twitter api有意见。我使用这个脚本脚本删除推文删除推文形成一个帐户。我看到了twitepy方法(api,user_timeline) 不会返回包含媒体的推文(从网站访问推文,它们不会出现在时间线中,但会出现在另一个名为“照片和视频”的选项卡中),因此不会被删除。include_实体不是此方法的参数。 我怎样才能恢复这些推文?我以为我可以用用户名作为查询进行搜索,但那不起作用,而且效率

  • 我想打印一个特定的用户时间表,但似乎找不到可用的代码片段。 从文档中: 返回身份验证用户或指定用户最近发布的20个状态。也可以通过id参数请求另一个用户的时间线。 我的尝试: 引发TweepError(error_msg,resp,api_code=api_error_code) tweepy.error错误。TweepError:Twitter错误响应:状态代码=414

  • 使用tweepy,我们可以按位置和多个位置搜索推文,例如: 然而,当我试图将来自纽约的所有推文放在一个列表中,并将来自旧金山的推文放在另一个列表中时,我无法将它们分配到任何一个列表。这是我的代码片段: 如何将它们正确地放在正确的列表中?