Работа с лимитом Twitter - PullRequest
       30

Работа с лимитом Twitter

0 голосов
/ 17 декабря 2018

У меня, казалось бы, простая проблема, для которой я изо всех сил пытаюсь найти решение.У меня есть список из ~ 3000 идентификаторов твитов, для которых я хочу получить количество ретвитов, лайков и количество подписчиков пользователя.

Для этого я написал следующий код:

def chunks(l, n):
    # For item i in a range that is a length of l,
    for i in range(0, len(l), n):
        # Create an index range for l of n items:
        yield l[i:i+n]

tweets = []
id = list(chunks(listOfTwitterIDs, 100))
for each in id:
    tweets.append(api.statuses_lookup(each, map=true))

Однако это превысит ограничения скорости Твиттера.Как я могу ввести 15-минутное время ожидания, когда я достиг предела скорости?

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018
def chunks(l, n):
    # For item i in a range that is a length of l,
    for i in range(0, len(l), n):
        # Create an index range for l of n items:
        yield l[i:i+n]

tweets = []
id = list(chunks(listOfTwitterIDs, 100))
for each in id:
    # try to get get # of retweets
    try:
        tweets.append(api.statuses_lookup(each, map=true))
    # If it fails, wait 15 mins and 1 sec (just to be safe) and try again
    except: 
        sleep(901)
        tweets.append(api.statuses_lookup(each, map=true))
0 голосов
/ 17 декабря 2018

API tweepy имеет параметр wait_on_rate_limit, который по умолчанию установлен на False.

Другой пример обработки ограничения скорости с использованием курсоров представлен в tweepyдокументы фрагменты кода.

...