
Un outil avancé de scraping Twitter et d'OSINT écrit en Python qui n'utilise pas l'API de Twitter, vous permettant de scraper les followers, les abonnements, les tweets et plus d'un utilisateur tout en contournant la plupart des limitations de l'API.

Pas d'authentification. Pas d'API. Pas de limites.
Twint est un outil avancé de scraping Twitter écrit en Python qui permet de scraper les Tweets des profils Twitter sans utiliser l'API de Twitter.
Twint utilise les opérateurs de recherche de Twitter pour vous permettre de scraper les Tweets d'utilisateurs spécifiques, de scraper les Tweets liés à certains sujets, hashtags et tendances, ou d'extraire des informations sensibles des Tweets comme les e-mails et les numéros de téléphone. Je trouve cela très utile, et vous pouvez aussi faire preuve de créativité.
Twint effectue également des requêtes spéciales vers Twitter, vous permettant de scraper les abonnés d'un utilisateur Twitter, les Tweets qu'il a aimés, et ceux qu'il suit, sans aucune authentification, API, Selenium, ou émulation de navigateur.
Quelques avantages de l'utilisation de Twint par rapport à l'API Twitter :
Twitter limite le défilement lors de la navigation dans la timeline d'un utilisateur. Cela signifie qu'avec .Profile ou .Favorites, vous pourrez obtenir environ 3200 tweets.
Git :
git clone --depth=1 https://github.com/twintproject/twint.git
cd twint
pip3 install . -r requirements.txt
Pip :
pip3 install twint
ou
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
Ajouté : Dockerfile
J'ai remarqué que beaucoup de gens ont des problèmes d'installation (moi y compris). Veuillez utiliser temporairement le Dockerfile pendant que j'examine ces problèmes.
Quelques exemples simples pour vous aider à comprendre les bases :
twint -u username - Scraper tous les Tweets d'un utilisateur (n'inclut pas les retweets mais inclut les réponses).twint -u username -s pineapple - Scraper tous les Tweets de la timeline de l'utilisateur contenant pineapple.twint -s pineapple - Collecter chaque Tweet contenant pineapple parmi tous les Tweets.twint -u username --year 2014 - Collecter les Tweets tweetés avant 2014.twint -u username --since "2015-12-20 20:30:15" - Collecter les Tweets tweetés depuis le 2015-12-20 20:30:15.twint -u username --since 2015-12-20 - Collecter les Tweets tweetés depuis le 2015-12-20 00:00:00.twint -u username -o file.txt - Scraper les Tweets et les sauvegarder dans file.txt.twint -u username -o file.csv --csv - Scraper les Tweets et les sauvegarder en fichier csv.twint -u username --email --phone - Afficher les Tweets pouvant contenir des numéros de téléphone ou des adresses e-mail.Plus de détails sur les commandes et options se trouvent dans le wiki
Twint peut désormais être utilisé en tant que module et prend en charge le formatage personnalisé. Plus de détails sont disponibles dans le wiki
import twint
# Configuration
c = twint.Config()
c.Username = "realDonaldTrump"
c.Search = "great"
# Exécution
twint.run.Search(c)
Sortie
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)
Les détails sur la configuration d'Elasticsearch avec Twint se trouvent dans le wiki.

Les détails sur le Graphique se trouvent également dans le wiki.
Nous développons une application de bureau pour Twint.

J'ai essayé de scraper les tweets d'un utilisateur, je sais qu'ils existent mais je ne les obtiens pas
Twitter peut shadow-banner des comptes, ce qui signifie que leurs tweets ne seront pas disponibles via la recherche. Pour résoudre ce problème, passez l'option --profile-full si vous utilisez Twint en CLI, ou si vous utilisez Twint en module, ajoutez config.Profile_full = True. Veuillez noter que ce processus sera assez lent.
Pour obtenir uniquement les noms d'utilisateur des abonnés/abonnements
twint -u username --followers
twint -u username --following
Pour obtenir les informations utilisateur des abonnés/abonnements
twint -u username --followers --user-full
twint -u username --following --user-full
Pour obtenir uniquement les informations d'un utilisateur
twint -u username --user-full
Pour obtenir les informations des utilisateurs d'une liste
twint --userlist inputlist --user-full
Pour obtenir 100 tweets en anglais et les traduire en italien
twint -u noneprivacy --csv --output none.csv --lang en --translate --translate-dest it --limit 100
ou
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)
Notes :
Si vous avez des questions, souhaitez participer aux discussions ou avez besoin d'aide supplémentaire, vous êtes les bienvenus pour rejoindre notre chaîne dédiée à Twint sur OSINT team
twint -s "Donald Trump" --verified - Afficher les Tweets d'utilisateurs vérifiés qui ont tweeté à propos de Donald Trump.twint -g="48.880048,2.385939,1km" -o file.csv --csv - Scraper les Tweets dans un rayon de 1 km autour d'un lieu à Paris et les exporter en fichier csv.twint -u username -es localhost:9200 - Envoyer les Tweets vers Elasticsearchtwint -u username -o file.json --json - Scraper les Tweets et les sauvegarder en fichier json.twint -u username --database tweets.db - Sauvegarder les Tweets dans une base de données SQLite.twint -u username --followers - Scraper les abonnés d'un utilisateur Twitter.twint -u username --following - Scraper les personnes qu'un utilisateur Twitter suit.twint -u username --favorites - Collecter tous les Tweets qu'un utilisateur a mis en favori (récupère environ 3200 tweets).twint -u username --following --user-full - Collecter les informations complètes des utilisateurs qu'une personne suit.twint -u username --timeline - Utiliser une méthode efficace pour récupérer les Tweets du profil d'un utilisateur (récupère environ 3200 Tweets, y compris les retweets et réponses).twint -u username --retweets - Utiliser une méthode rapide pour récupérer les 900 derniers Tweets (incluant les retweets) du profil d'un utilisateur.twint -u username --resume resume_file.txt - Reprendre une recherche à partir du dernier scroll-id sauvegardé.