
Продвинутый инструмент для скрапинга Twitter и OSINT, написанный на Python, который не использует API Twitter, позволяя вам собирать данные о подписчиках пользователя, подписках, твитах и многом другом, обходя большинство ограничений API.

Без аутентификации. Без API. Без ограничений.
Twint — это продвинутый инструмент для сбора твитов на Python, который позволяет извлекать твиты из профилей Twitter без использования API Twitter.
Twint использует поисковые операторы Twitter, позволяя собирать твиты с конкретных пользователей, твиты по определённым темам, хэштегам и трендам, а также извлекать конфиденциальную информацию из твитов, такую как email и номера телефонов. Я считаю это очень полезным, и вы тоже можете проявить творческий подход.
Twint также выполняет специальные запросы к Twitter, позволяя собирать подписчиков пользователя, твиты, которые он лайкнул, и тех, на кого он подписан без какой-либо аутентификации, API, Selenium или эмуляции браузера.
Некоторые преимущества использования Twint по сравнению с Twitter API:
Twitter ограничивает прокрутку при просмотре временной шкалы пользователя. Это означает, что с помощью .Profile или .Favorites вы сможете получить около 3200 твитов.
Git:
git clone --depth=1 https://github.com/twintproject/twint.git
cd twint
pip3 install . -r requirements.txt
Pip:
pip3 install twint
или
pip3 install --user --upgrade git+https://github.com/twintproject/twint.git@origin/master#egg=twint
Pipenv:
pipenv install git+https://github.com/twintproject/twint.git#egg=twint
Добавлено: Dockerfile
Заметил, что у многих людей возникают проблемы с установкой (в том числе у меня). Пожалуйста, временно используйте Dockerfile, пока я разбираюсь.
Несколько простых примеров, чтобы помочь вам понять основы:
twint -u username — Загрузить все твиты пользователя (не включает репосты, но включает ответы).twint -u username -s pineapple — Загрузить все твиты из временной шкалы пользователя, содержащие pineapple.twint -s pineapple — Собрать все твиты, содержащие pineapple, из всех твитов.twint -u username --year 2014 — Собрать твиты, которые были опубликованы до 2014 года.twint -u username --since "2015-12-20 20:30:15" — Собрать твиты, опубликованные начиная с 2015-12-20 20:30:15.twint -u username --since 2015-12-20 — Собрать твиты, опубликованные начиная с 2015-12-20 00:00:00.twint -u username -o file.txt — Собрать твиты и сохранить в file.txt.twint -u username -o file.csv --csv — Собрать твиты и сохранить в CSV-файл.twint -u username --email --phone — Показать твиты, которые могут содержать номера телефонов или email-адреса.twint -s "Donald Trump" --verified — Отобразить твиты верифицированных пользователей, которые написали о Donald Trump.Более подробная информация о командах и опциях находится в wiki
Twint теперь можно использовать как модуль, и он поддерживает пользовательское форматирование. Более подробная информация находится в wiki
import twint
# Configure
c = twint.Config()
c.Username = "realDonaldTrump"
c.Search = "great"
# Run
twint.run.Search(c)
Вывод
955511208597184512 2018-01-22 18:43:19 GMT <now> pineapples are the best fruit
import twint
c = twint.Config()
c.Username = "noneprivacy"
c.Custom["tweet"] = ["id"]
c.Custom["user"] = ["bio"]
c.Limit = 10
c.Store_csv = True
c.Output = "none"
twint.run.Search(c)
Подробности настройки Elasticsearch с Twint находятся в wiki.

Подробности графа также находятся в wiki.
Мы разрабатываем настольное приложение Twint.

Я пытался собрать твиты пользователя, знаю, что они существуют, но не получаю их
Twitter может скрыто банить аккаунты, что означает, что их твиты не будут доступны через поиск. Чтобы решить эту проблему, передайте --profile-full, если вы используете Twint через CLI, или, если используете Twint как модуль, добавьте config.Profile_full = True. Имейте в виду, что этот процесс будет довольно медленным.
Чтобы получить только имена пользователей подписчиков/подписок
twint -u username --followers
twint -u username --following
Чтобы получить информацию о пользователях подписчиков/подписок
twint -u username --followers --user-full
twint -u username --following --user-full
Чтобы получить только информацию о пользователе
twint -u username --user-full
Чтобы получить информацию о пользователях из списка пользователей
twint --userlist inputlist --user-full
Чтобы получить 100 англоязычных твитов и перевести их на итальянский
twint -u noneprivacy --csv --output none.csv --lang en --translate --translate-dest it --limit 100
или
import twint
c = twint.Config()
c.Username = "noneprivacy"
c.Limit = 100
c.Store_csv = True
c.Output = "none.csv"
c.Lang = "en"
c.Translate = True
c.TranslateDest = "it"
twint.run.Search(c)
Примечания:
Если у вас есть вопросы, вы хотите присоединиться к обсуждениям или вам нужна дополнительная помощь, добро пожаловать в наш канал, посвящённый Twint, на OSINT team
twint -g="48.880048,2.385939,1km" -o file.csv --csv — Собрать твиты в радиусе 1 км вокруг места в Париже и экспортировать их в CSV-файл.twint -u username -es localhost:9200 — Вывести твиты в Elasticsearchtwint -u username -o file.json --json — Собрать твиты и сохранить в JSON-файл.twint -u username --database tweets.db — Сохранить твиты в базу данных SQLite.twint -u username --followers — Собрать подписчиков пользователя Twitter.twint -u username --following — Собрать тех, на кого подписан пользователь Twitter.twint -u username --favorites — Собрать все твиты, которые пользователь отметил как понравившиеся (собирает около 3200 твитов).twint -u username --following --user-full — Собрать полную информацию о пользователях, на которых подписан человек.twint -u username --timeline — Использовать эффективный метод для сбора твитов из профиля пользователя (собирает около 3200 твитов, включая репосты и ответы).twint -u username --retweets — Использовать быстрый метод для сбора последних 900 твитов (включая репосты) из профиля пользователя.twint -u username --resume resume_file.txt — Возобновить поиск, начиная с последнего сохранённого scroll-id.