Как получить более 3500 твитов с помощью Tweepy? - PullRequest
0 голосов
/ 23 февраля 2020

Пожалуйста, мне нужна помощь, я работаю над получением твитов между двумя периодами времени, однако код работает нормально, пока не достигнет некоторого количества, чем зависает. обычно у меня есть твиты между 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")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...