twython: получить список подписчиков

Используя twython, я пытаюсь получить список всех подписчиков определенного идентификатора, у которого более 40 тысяч подписчиков. Но я сталкиваюсь с ошибкой ниже: «Twitter API вернул превышение ограничения скорости 429 (слишком много запросов). Как решить эту проблему?

Ниже приведен фрагмент, я печатаю имя пользователя и информацию о часовом поясе.

следующий_курсор = -1

 while(next_cursor):

  search = twitter.get_followers_list(screen_name='ndtvgadgets',cursor=next_cursor)

    for result in search['users']:
        time_zone =result['time_zone'] if result['time_zone'] != None else "N/A"
        print result["name"].encode('utf-8')+ ' '+time_zone.encode('utf-8')
    next_cursor = search["next_cursor"]

person BJC    schedule 17.10.2013    source источник


Ответы (1)


Измените строку поиска на:

search = twitter.get_followers_list(screen_name='ndtvgadgets',count=200,cursor=next_cursor)

Затем импортируйте модуль времени и вставляйте time.sleep(60) между каждым вызовом API.

Для пользователя с 41 000 подписчиков это займет целую вечность (около трех с половиной часов для учетной записи ndtvgadgets), но это должно сработать. При увеличении количества до 200 (максимум) вы фактически запрашиваете 200 результатов каждую минуту. Если в вашем скрипте есть другие вызовы API в дополнение к twitter.get_followers_list, вы можете немного увеличить время сна или вставить вызов сна после каждого из них.

person Ben    schedule 19.10.2013
comment
Эй, Бен, спасибо за ответ. Интересно, как ребята из simplemeasured.com могут довольно быстро получить эту информацию, интересно, есть ли лучший способ сделать это. - person BJC; 19.10.2013
comment
Может быть способ справиться с этим через потоковый API, но я не смотрел на это, поэтому не могу быть уверен. Кроме того, я должен упомянуть, что на самом деле я не тестировал временные задержки, как описано здесь, поэтому могут возникнуть некоторые проблемы с поддержкой ответа через REST API в течение длительного периода времени. - person Ben; 20.10.2013