PeakyBlinder
PeakyBlinder

Reputation: 1117

How to get full tweets from tweepy?

I am extracting tweets based on hashtags from Twitter using Tweepy. The problem is the extracted tweets do not come in full length.

Here is my code

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')])

When I don't use tweet_mode='extended', it does not give full tweets. And using tweet_mode='extended', it gives the following error

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'

Can someone please help to figure this problem out?

Upvotes: 1

Views: 961

Answers (1)

Jonathan Delean
Jonathan Delean

Reputation: 1084

If you use extended, you need to get the text by print(status.full_text)

do that :

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

Upvotes: 2

Related Questions