Я пытаюсь вычеркнуть твиты из пользовательского профиля Twitter.Прочитав предыдущие посты, я понял, что в Twitter JSON есть раздел для расширенных твитов.Я добавил tweet_mode='extended'
в свой api.user_timeline
раздел и изменил .text
на .full_text.
Однако я все еще получаю усеченные твиты.Я понимаю, что ретвиты имеют атрибут full_text, но я очищаю временную шкалу и не отделяю твиты от ретвитов.
Существует ли способ универсального запроса твитов и получения версии full_text.Я включил свой код ниже.
screen_name_list = ['@x']
for name in screen_name_list:
user = api.get_user(name)
#initialize a list to hold all the tweepy Tweets
alltweets = []
#make initial request for most recent tweets (200 is the maximum allowed count)
new_tweets = api.user_timeline(screen_name = name, count = 200,tweet_mode='extended', include_rts=True)
#save most recent tweets
alltweets.extend(new_tweets)
#save the id of the oldest tweet less one
oldest = alltweets[-1].id - 1
#keep grabbing tweets until there are no tweets left to grab
while len(new_tweets) > 0:
print 'getting tweets before %s' % (oldest)
#all subsiquent requests use the max_id param to prevent duplicates
new_tweets = api.user_timeline(screen_name = name, count=200, max_id=oldest, tweet_mode='extended')
#save most recent tweets
alltweets.extend(new_tweets)
#update the id of the oldest tweet less one
oldest = alltweets[-1].id - 1
print "...%s tweets downloaded so far" % (len(alltweets))
#transform the tweepy tweets into a 2D array that will populate the csv
outtweets = [[tweet.id_str, tweet.created_at, tweet.full_text.encode('utf-8')] for tweet in alltweets]
tweet_time = [index[1] for index in outtweets]
tweet_list = [index[2] for index in outtweets]