Получение полного текста твита из "user_timeline" с помощью tweepy
Я использую tweepy для получения твитов с временной шкалы пользователя, используя скрипт, включенный здесь. Тем не менее, твиты приходят в усеченном виде:
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
Где ...
в последнем заменяется текст, который обычно отображается в твиттере.
Кто-нибудь знает, как я могу переопределить truncated=True
получить полный текст по моему запросу?
1 ответ
Вместо 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]
Ответ Манолиса хороший, но не полный. Чтобы получить расширенную версию твита (как в версии Маноли), вы должны сделать:
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
,