Как получить полные твиты от tweepy? - PullRequest
1 голос
/ 19 июня 2020

Я извлекаю твиты на основе хэштегов из Twitter с помощью Tweepy. Проблема в том, что извлеченные твиты не имеют полной длины.

Вот мой код

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'

Может кто-нибудь помочь разобраться в этой проблеме?

1 Ответ

1 голос
/ 19 июня 2020

Если вы используете extended, вам нужно получить текст по print(status.full_text)

, сделайте это:

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