Пожалуйста, мне нужна помощь, я работаю над получением твитов между двумя периодами времени, однако код работает нормально, пока не достигнет некоторого количества, чем зависает. обычно у меня есть твиты между 3000, 3400. Мне нужно больше твитов, даже если это займет время ... Я слышал о методе, которым вы можете запустить программу, пока она не достигнет максимальных запросов, тогда будет функция завершения что будет продолжать запрашивать, пока вы не получите все запросы?
Спасибо:)
import tweepy
import datetime
import xlsxwriter
consumer_key = ""
consumer_secret = ""
access_token = ""
access_token_secret = ""
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, wait_on_rate_limit_notify=True)
username = 'x'
startDate = datetime.datetime(2019, 10, 29)
endDate = datetime.datetime(2020, 2, 15)
tweets = []
tmpTweets = api.user_timeline(username, count=200, include_rts = False, tweet_mode="extended")
for tweet in tmpTweets:
if tweet.created_at < endDate and tweet.created_at > startDate:
tweets.append(tweet)
while (tmpTweets[-1].created_at > startDate):
print("Last Tweet @", tmpTweets[-1].created_at, " - fetching some more")
tmpTweets = api.user_timeline(username, max_id = tmpTweets[-1].id, count=200, include_rts = False, tweet_mode="extended")
for tweet in tmpTweets:
if tweet.created_at < endDate and tweet.created_at > startDate:
tweets.append(tweet)
workbook = xlsxwriter.Workbook("x_Data" + ".xlsx")
worksheet = workbook.add_worksheet()
worksheet.write_string(0, 0, "Tweet ID:")
worksheet.write_string(0, 1, "Created date:")
worksheet.write_string(0, 2, "Tweet:")
worksheet.write_string(0, 3, "Reply to status ID:")
worksheet.write_string(0, 4, "Favorites:")
worksheet.write_string(0, 5, "Retweets:")
worksheet.write_string(0, 6, "Screen name:")
row = 1
for tweet in tweets:
if (not tweet.retweeted) and ('RT @' not in tweet.text):
worksheet.write_string(row, 0, tweet.id)
worksheet.write_string(row, 1, str(tweet.created_at))
worksheet.write(row, 2, tweet.text)
worksheet.write_string(row, 3, str(tweet.in_reply_to_status_id))
worksheet.write_string(row, 4, tweet.favorite_count)
worksheet.write_string(row, 5, tweet.retweet_count)
worksheet.write_string(row, 6, str(tweet.user.screen_name))
row += 1
else:
continue
workbook.close()
print("Excel file ready")