получение всех твитов пользователя твиттера, проблема ограничения скорости - PullRequest
1 голос
/ 15 апреля 2011

Я пытался получить все твиты какого-то публичного (разблокированного) пользователя твиттера.Я использую REST API: http://api.twitter.com/1/statuses/user_timeline.json?screen_name=andy_murray&count=200&page=1'

Пройдя 16 страниц (параметр страницы), он позволяет, таким образом, получить 3200 твитов, что нормально.НО тогда я обнаружил, что ограничение скорости для таких звонков составляет 150 в час (!!!), что означает менее 10 пользовательских запросов в час (16 страниц каждый).(350 разрешено, если вы аутентифицируетесь, все еще очень низкое число)

Есть идеи, как решить эту проблему?API потоковой \ поисковой системы кажутся неподходящими (?), и некоторые веб-сервисы, похоже, содержат эти данные.

Спасибо

Ответы [ 3 ]

2 голосов
/ 17 апреля 2011

Один из подходов состоит в том, чтобы использовать потоковый API (или, возможно, более конкретные пользовательские потоки , если это лучше подходит для вашего приложения), чтобы начать собирать все твиты по мере их появления изцелевых пользователей, не беспокоясь о традиционных ограничениях скорости, а затем используйте REST API для обратной закачки исторических твитов этих пользователей.

Конечно, у вас есть только 350 аутентифицированных запросов в час, но если вы запускаете свой харвестер круглосуточно, это все равно 1 680 000 твитов в день (350 запросов / час * 24 часа / день * 200 твитов / запрос).

Так, например, если вы решили получать 1000 твитов на пользователя в день (5 вызовов API при 200 твиттах на вызов), вы можете использовать до 1680 пользовательских графиков в день (70 графиков в час).Затем на следующий день начните с того места, где вы остановились, собрав следующие 1000 твитов, используя самый старый идентификатор статуса для пользователя в качестве параметра max_id в вашем запросе statuses / user_timeline .

Потоковый API будет держать вас в курсе всех новых статусов, которые твитит ваш целевой пользователь, а вызовы REST API довольно быстро, примерно через четыре дня, начнут сталкиваться с лимитом выборки Twitter для исторических твитов этих пользователей.После этого вы можете добавить дополнительных пользователей для извлечения информации из конечной точки потоковой передачи, добавив их в список follow, и вы можете прекратить извлекать исторические твиты для тех пользователей, у которых достигнут максимум, и начинать извлекать твиты новой целевой группы.

2 голосов
/ 16 апреля 2011

Вы можете ставить запросы в очередь и делать их, как позволяет ограничение скорости, или вы можете делать аутентифицированные запросы несколькими пользователями. Каждый пользователь имеет 350 запросов / час.

0 голосов
/ 16 апреля 2011

Похоже, что API поиска соответствует вашим потребностям, поскольку вы можете выполнять поиск по псевдониму. Ограничение скорости API поиска выше, чем ограничение скорости API REST.

...