Search code examples
pythontwittertweepy

Tweepy: extended mode with api.search


I've written a simple script to get the most trending 300 tweets containing a specific hashtag.

for self._tweet in tweepy.Cursor(self._api.search,q=self._screen_name,count=300, lang="en").items(300):
        self._csvWriter.writerow([self._tweet.created_at, self._tweet.text.encode('utf-8')])

It works well and it save the result to CSV but the tweets are truncated.

I modified the code like this, adding the twitter_mode=extended parameter:

for self._tweet in tweepy.Cursor(self._api.search,q=self._screen_name,count=300, lang="en", tweet_mode="extended").items(300):
        self._csvWriter.writerow([self._tweet.created_at, self._tweet.text.encode('utf-8')])

But I got this exception:

AttributeError: 'Status' object has no attribute 'text

My question is: how can I save an complete tweet using a Cursor? (complete = not truncated)

Thanks in advance (and sorry, I'm a Tweepy newbie trying to learn as much as possible)


Solution

  • You're really close, do this instead:

    for self._tweet in tweepy.Cursor(self._api.search,q=self._screen_name,count=300, lang="en", tweet_mode="extended").items(300):
        self._csvWriter.writerow([self._tweet.created_at, self._tweet.full_text.encode('utf-8')])
    

    Notice that I used full_text in self._tweet.full_text.encode('utf-8'), rather than just text. The text property is null when you use tweet_mode='extended' and the tweet appears in full_text instead.