【问题标题】:Is it possible to stream full tweets using Tweepy on_data function是否可以使用 Tweepy on_data 函数流式传输完整的推文
【发布时间】:2019-09-03 16:23:42
【问题描述】:

当使用 Tweepy 流式传输推特提要时,是否可以在 on_data 函数中返回完整的推文文本?

我已经尝试并看到了 on_status 流媒体功能的解决方案。 on_status 函数可以按照 status.extended_tweet["full_text"] 的方式返回全文。但是,这似乎不适用于 on_data 函数,而且我还没有看到有人专门针对 on_data 提出这个问题(除非我以某种方式错过了它)。那么这里有人知道是否有任何方法可以使用 on_data 流式传输全文推文吗?

我看到有人说 tweet_mode = 'extended' 会起作用,但我注意到这个解决方案不适用于流式推文。

类 TwitterListener(StreamListener):

def __init__(self, fetchedFeedsFile):
    self.fetchedFeedsFile = fetchedFeedsFile

def on_data(self, data):
    try:
            print(data)
            with open(self.fetchedFeedsFile, 'a') as tf:
                tf.write(data)
            return True

    except BaseException as e:
        print("Error on_data: %s" % str(e))
        return True

def on_error(self, status):
    if status == 420:
        return False
    print(status)

我使用 on_data 覆盖显示流推文并输出推文的代码,但是它不能返回完整的推文。

【问题讨论】:

  • 你试过在discord服务器上问这个吗?
  • 不,你说的是哪个discord服务器?我不知道有一个不和谐的服务器。我觉得把这个问题放在这里会很好,因为我还没有看到它。
  • 就在 tweepys main site
  • 谢谢你的链接,我去那里试试(y)

标签: python python-3.x twitter


【解决方案1】:

由于没有人回答我的问题,我自己做了一些进一步的研究和实验。我可以确认可以使用 on_data 获取全文。如果有人想使用 on_data 流式传输完整大小的推文,您必须首先访问 on_data 函数返回的 JSON。通常 JSON 将包含一个名为“text”的字符串,其中包含推文,但是如果推文太长(我相信超过 140 个字符?不确定)会有一个名为“extended_tweet”的字段,其中有一个名为“full_text”的字符串.下面是我使用的 on_data 覆盖的 sn-p,它成功地将完整大小的推文流式传输到文件。

data = json.loads(data)

try:
    tweetStr = data['extended_tweet']['full_text']
except Exception as e:
    tweetStr = data['text']

然后您可以将 tweetStr 输出到打印函数、文件或您想要的任何内容中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-07
    • 1970-01-01
    • 1970-01-01
    • 2018-03-17
    • 2019-05-16
    • 1970-01-01
    • 1970-01-01
    • 2014-05-05
    相关资源
    最近更新 更多