Достигнут предел скорости. Спать для: - PullRequest
0 голосов
/ 24 января 2019

Я собираю твиты с их ответами из API Twitter для создания набора данных, и я использую для этого библиотеку tweepy в python, но проблема в том, что я получаю эту ошибку так много (Предел скорости достигнут. Спит для :( любое число в секунду)), что задерживает меня, и я должен собрать как можно больше данных в кратчайшие сроки

Я читал, что твиттер имеет ограничение скорости, я думаю, 15 запросов в 15 минут или что-то в этом роде, но в моей ситуации я могу собирать только твит или два твита, пока он не остановится снова, а иногда он останавливается на 15 минут, а затем остановитесь снова на 15 минут, не давая мне дать мне время между ними, я не знаю, что вызвало проблему, является ли это мой код или нет?

    # Import the necessary package to process data in JSON format
    try:
        import json
    except ImportError:
        import simplejson as json

    # Import the tweepy library
    import tweepy
    import sys

    # Variables that contains the user credentials to access Twitter API 
    ACCESS_TOKEN = '-'
    ACCESS_SECRET = '-'
    CONSUMER_KEY = '-'
    CONSUMER_SECRET = '-'

    # Setup tweepy to authenticate with Twitter credentials:

    auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
    auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET)

    # Create the api to connect to twitter with your creadentials
    api = tweepy.API(auth, wait_on_rate_limit=True, wait_on_rate_limit_notify=True, compression=True)



    file2 = open('replies.csv','w', encoding='utf-8-sig') 

    replies=[]   
    non_bmp_map = dict.fromkeys(range(0x10000, sys.maxunicode + 1), 0xfffd)  
    for full_tweets in tweepy.Cursor(api.search,q='#عربي',timeout=999999,tweet_mode='extended').items():
        if (not full_tweets.retweeted) and ('RT @' not in full_tweets.full_text):
            for tweet in tweepy.Cursor(api.search,q='to:'+full_tweets.user.screen_name,result_type='recent',timeout=999999,tweet_mode='extended').items(1000):
                if hasattr(tweet, 'in_reply_to_status_id_str'):
                    if (tweet.in_reply_to_status_id_str==full_tweets.id_str):
                        replies.append(tweet.full_text)
            print(full_tweets._json)
            file2.write("{ 'id' : "+ full_tweets.id_str + "," +"'Replies' : ")  
            for elements in replies:
                    file2.write(elements.strip('\n')+" , ")      
            file2.write("}\n")
            replies.clear()



    file2.close()

$ python code.py > file.csv

Rate limit reached. Sleeping for: 262 

Rate limit reached. Sleeping for: 853
...