【问题标题】:How to get full tweets from tweepy?如何从 tweepy 获取完整的推文?
【发布时间】:2020-10-09 11:32:30
【问题描述】:

我正在使用 Tweepy 从 Twitter 中提取基于主题标签的推文。问题是提取的推文没有完整长度。

这是我的代码

import tweepy
import csv
import pandas as pd
####input your credentials here
consumer_key = 'XXXXXX'
consumer_secret = 'XXXXXX'
access_token = 'XXXXXX-XXXXXX'
access_token_secret = 'XXXXXX'

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth,wait_on_rate_limit=True)
# Open/Create a file to append data
csvFile = open('new-dataset12.csv', 'a')
#Use csv Writer
csvWriter = csv.writer(csvFile)
for tweet in tweepy.Cursor(api.search,q="#PregnantElephant", tweet_mode='extended', count=10000, lang="en", since="2020-04-03").items():
  print (tweet.created_at, tweet.text)
  csvWriter.writerow([tweet.created_at, tweet.text.encode('utf-8')])

当我不使用tweet_mode='extended' 时,它不会提供完整的推文。并使用tweet_mode='extended',它给出了以下错误

AttributeError                            Traceback (most recent call last)
<ipython-input-7-50f1dd34d7fa> in <module>()
     24 csvWriter = csv.writer(csvFile)
     25 for tweet in tweepy.Cursor(api.search,q="#PregnantElephant", tweet_mode='extended', count=10000, lang="en", since="2020-04-03").items():
---> 26   print (tweet.created_at, tweet.text)
     27   csvWriter.writerow([tweet.created_at, tweet.text.encode('utf-8')])

AttributeError: 'Status' object has no attribute 'text'

有人可以帮忙解决这个问题吗?

【问题讨论】:

    标签: python-3.x pandas api csv twitter


    【解决方案1】:

    如果使用extended,则需要通过print(status.full_text)获取文字

    这样做:

    try:
        print(status.retweeted_status.full_text)
    except AttributeError:  # Not a Retweet
        print(status.full_text)
    

    【讨论】:

    • 我应该用我的 for 循环中的代码替换这段代码吗?在这种情况下,它不起作用。错误是 - 未定义状态
    • 用“tweet”替换状态
    • 谢谢。有效。我已将答案标记为正确。也请投票赞成这个问题:)
    猜你喜欢
    • 2017-03-29
    • 2017-07-31
    • 2022-08-11
    • 2019-05-06
    • 2020-10-05
    • 1970-01-01
    • 2016-08-11
    • 1970-01-01
    • 2019-04-09
    相关资源
    最近更新 更多