Получение большого количества данных о подписчиках из Twitter - PullRequest
5 голосов
/ 05 мая 2019

Учитывая страницу A и страницу B в Twitter, я хотел бы найти всех пользователей, которые следят за обеими страницами A и B.

Twitter предоставляет метод для поиска подписчиков: GET подписчиков / идентификаторов

Тем не менее, он возвращает не более 5000 за запрос, и вы можете отправлять только 15 за 15 минут, в среднем скорость составляет 5000 пользователей в минуту, что явно не будет работать для большей учетной записис миллионами подписчиков.

Кто-нибудь знает лучший способ получить такие данные, предпочтительно используя dev API?Я имею в виду, что технически я могу попытаться эмулировать прокрутку в браузере, но она будет очень медленной, грязной и есть вероятность, что веб-клиент может использовать тот же API.

UPD:

Кроме того, я думаю, что мы можем сузить объем данных, которые нам нужно загрузить.Например, перекрывающиеся данные необходимо будет фильтровать по возрасту, полу или местоположению, поэтому, если есть способ предоставить эту информацию в качестве параметров и, следовательно, получить меньше данных - это будет работать просто отлично.

Примертакого API: user.search метод из ВК.Вы можете указать group_id (что соответствует отслеживаемой учетной записи Twitter) и искать подписчиков этой группы, фильтруя по другим параметрам.

Ответы [ 3 ]

2 голосов
/ 15 мая 2019

Я не думаю, что это было бы легко достичь, так как число подписчиков ограничено 64int, что составляет 255 486 129 297. Я не думаю, что какой-либо API сможет вернуть такой объем данных без потоковой передачи или пакетирования. Вот причина, почему это происходит по частям и с ограничениями.

Я бы предложил использовать потоковое приложение (например, Kafka, Amazon Kinesis или Azure Event Hub).

Twitter API поддерживает потоковую передачу ( Twitter API stream ), что означает, что вы можете запросить необходимый поток информации у производителя (приложение, которое получает данные из источника), который затем отправляет / передает данные в тему и из там вы можете взять его партиями и отобразить его.

Конечно, есть два сценария: вам нужно хранить последователей в вашей базе данных и обновлять информацию об изменениях, или каждый раз читать поток с самого начала, что приведет к ощутимой задержке.

Я бы предложил сохранить потоковые данные в БД и обновить их при изменении. (NoSQL был бы идеальным решением для этого)

1 голос
/ 15 мая 2019

вы правы, находя обычных пользователей между учетной записью и миллионом фолловеров, занимающих много времени.
вы можете использовать предварительно выбранного пользователя для проверки своего соединения, например, вы можете видеть, что у пользователя A есть фолловеры с пользователем B.
с этим вызовом API

https://api.twitter.com/1.1/friendships/show.json

другой хорошей вещью, которую я нашел в Интернете, было http://tweepdiff.com, которое дает некоторые общие для учетных записей, но не все

0 голосов
/ 15 мая 2019

Я предполагаю, что это преднамеренный предел.Твиттер не очень заинтересован в том, чтобы позволить вам обрабатывать все их пользовательских данных, и подобный интерфейс позволил бы вам делать это очень быстро.Извлечение тонны и тонны данных подписчиков будет тяжелой нагрузкой на их серверы, и если вы все это делаете, это не отвечает их бизнес-интересам, если вы не платите им совсем немного.

Ваша лучшая ставка без ихпомощь может заключаться в том, чтобы получить несколько ключей API и получить данные от серверов за VPN, но они, вероятно, в конечном итоге вас выяснят.

Если у вас есть веская деловая причина , которая помогает им хотеть этогомного данных, я бы порекомендовал связаться с ними и спросить, можете ли вы иметь прямой экспорт JSON / API для загрузки.Это, вероятно, довольно тяжелая просьба нести.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...