web-dev-qa-db-ja.com

tweepyを使用して「user_timeline」から完全なツイートテキストを取得する

Tweepyを使用して、含まれているスクリプト here を使用して、ユーザーのタイムラインからツイートを取得しています。ただし、ツイートは切り捨てられています。

_auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_key, access_secret)
api = tweepy.API(auth)
new_tweets = api.user_timeline(screen_name = screen_name,count=200, full_text=True)
_

戻り値:

_Status(contributors=None, 
     truncated=True, 
     text=u"#Hungary's new bill allows the detention of asylum seekers 
          & Push backs to #Serbia. We've seen Push backs before so\u2026 https:// 
          t.co/iDswEs3qYR", 
          is_quote_status=False, 
          ...
_

つまり、いくつかのiの場合、new_tweets[i].text.encode("utf-8")は次のようになります。

_#Hungary's new bill allows the detention of asylum seekers & 
Push backs to #Serbia. We've seen Push backs before so…https://t.co/
iDswEs3qYR
_

後者の_..._は、通常Twitterに表示されるテキストを置き換えます。

_truncated=True_をオーバーライドしてリクエストの全文を取得する方法を知っている人はいますか?

16
atkat12

Full_text = Trueの代わりにTweet_mode = "extended"が必要です

次に、テキストの代わりにfull_textを使用して完全なツイートテキストを取得する必要があります。

コードは次のようになります。

new_tweets = api.user_timeline(screen_name = screen_name,count=200, Tweet_mode="extended")

次に、完全なツイートテキストを取得するために:

tweets = [[Tweet.full_text] for Tweet in new_tweets]

22

マノリスの答えは良いが、完全ではない。 (Manoliのバージョンのように)ツイートの拡張バージョンを取得するには、次のようにします。

tweetL = api.user_timeline(screen_name='sdrumm', Tweet_mode="extended")
tweetL[8].full_text
'Statement of the day at #WholeChildSummit2019 - “‘SOME’ is not a number, and ‘SOON’ is not a time!” IMO, this is why educational systems get stuck. Who in your system will initiate change? TODAY! #HSEFutureReady'

ただし、このツイートがリツイートである場合は、リツイートの全文を使用する必要があります。

tweetL = api.user_timeline(id=2271808427, Tweet_mode="extended")
# This is still truncated
tweetL[6].full_text
'RT @blawson_lcsw: So proud of these amazing @HSESchools students who presented their ideas on how to help their peers manage stress in mean…'
# Use retweeted_status to get the actual full text
tweetL[6].retweeted_status.full_text
'So proud of these amazing @HSESchools students who presented their ideas on how to help their peers manage stress in meaningful ways! Thanks @HSEPrincipal for giving us your time!'

これはPython 3.6およびtweepy-3.6.0でテストされました。