Я пытаюсь построить граф социальной сети пользователей твиттера, которые упомянули определенную тему. Моя стратегия сделать это примерно так:
- Сделайте запрос в Twitter по теме. Соберите первые 100 появившихся твитов и добавьте этих пользователей в график.
- Для каждого пользователя:
- Найдите друзей и подписчиков.
- Спросите каждого друга / подписчика по теме. Если они обнаружат результат (что означает, что они обсудили тему), добавьте их в график.
- Для каждого пользователя, добавленного в график, вернитесь к шагу 2, пока не будет достигнута желаемая глубина поиска.
У меня двойная проблема. Во-первых, этот подход быстро превышает мой предел скорости поискового API. Даже при глубине поиска 2 вполне вероятно, что я найду людей с более чем 100 друзьями / подписчиками, и я не смогу запросить их всех, прежде чем достигну предела скорости.
Во-вторых, все это занимает довольно много времени. Twitter API работает не быстро. В гипотетическом случае, когда у меня не было ограничений по скорости, я мог отправлять запросы асинхронно, но не могу не задаться вопросом, есть ли более эффективный способ.
Я пробовал объединить запросы в один запрос по глубине поиска: тема И от: имя1 ИЛИ от: имя2 .... ИЛИ от: имяi
Это в основном взрывается. Я получаю сообщение об ошибке сброса соединения из twitter API. Если я скопирую запрос на веб-страницу Twitter, он просто задержится на некоторое время, а затем скажет: «Загрузка твитов, похоже, занимает некоторое время».
Я также отправил письмо по адресу [email protected], чтобы попросить совета / увеличения доступа, но пока ответа не получил.
Если у кого-то есть предложения о том, как собирать такую информацию через twitter API, я был бы очень признателен. В настоящее время я использую twitter4j и java.