Keine Authentifizierung. Keine API. Keine Grenzen.
Twint ist ein in Python geschriebenes, fortschrittliches Twitter-Scraping-Tool, das das Scrapen von Tweets aus Twitter-Profilen ermöglicht, ohne die Twitter-API zu verwenden.
Twint nutzt die Suchoperatoren von Twitter, um es Ihnen zu ermöglichen, Tweets von bestimmten Benutzern zu extrahieren, Tweets zu bestimmten Themen, Hashtags und Trends zu extrahieren oder sensible Informationen wie E-Mail-Adressen und Telefonnummern aus Tweets herauszufiltern. Ich finde das sehr nützlich und man kann damit auch wirklich kreativ werden.
Twint führt auch spezielle Abfragen an Twitter durch, sodass Sie ohne Authentifizierung, API, Selenium oder Browser-Emulation auch die Follower eines Twitter-Benutzers, Tweets, die ein Benutzer geliked hat, und wem er folgt, auslesen können.
Einige der Vorteile der Verwendung von Twint vs. Twitter API:
Kann fast alle Tweets abrufen (die Twitter-API ist auf die letzten 3200 Tweets beschränkt);
Schnelle Ersteinrichtung;
Kann anonym und ohne Twitter-Anmeldung genutzt werden;
Keine Tarifbeschränkungen .
Twitter beschränkt das Scrollen beim Durchsuchen der Benutzer-Timeline. Das bedeutet, dass Sie mit .Profile
oder mit .Favorites
ca. 3200 Tweets erhalten können.
Python 3.6;
aiohttp;
aiodns;
schöne Suppe4;
cchardet;
Datenklassen
elastische Suche;
Schlafsäcke;
Pandas (>=0,23,0);
aiohttp_socks;
Zeitplan;
Geopy;
gefälschter Benutzeragent;
py-googletransx.
Git:
git clone --length=1 https://github.com/twintproject/twint.gitcd Twint pip3 installieren. -r Anforderungen.txt
Pip:
pip3 Twint installieren
oder
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
Hinzugefügt : Dockerfile
Mir ist aufgefallen, dass viele Leute Probleme bei der Installation haben (einschließlich mir). Bitte verwenden Sie die Docker-Datei vorübergehend, während ich sie mir ansehe.
Ein paar einfache Beispiele, die Ihnen helfen, die Grundlagen zu verstehen:
twint -u username
– Scrapt alle Tweets eines Benutzers (beinhaltet keine Retweets , aber auch Antworten ).
twint -u username -s pineapple
– Entfernen Sie alle Tweets aus der Timeline des Benutzers, die Ananas enthalten.
twint -s pineapple
– Sammle jeden Tweet, der Ananas enthält, aus den Tweets aller.
twint -u username --year 2014
– Sammeln Sie Tweets, die vor 2014 getwittert wurden.
twint -u username --since "2015-12-20 20:30:15"
– Sammeln Sie Tweets, die seit dem 20.12.2015 20:30:15 getwittert wurden.
twint -u username --since 2015-12-20
– Sammeln Sie Tweets, die seit dem 20.12.2015 00:00:00 getwittert wurden.
twint -u username -o file.txt
– Tweets löschen und in Datei.txt speichern.
twint -u username -o file.csv --csv
– Tweets extrahieren und als CSV-Datei speichern.
twint -u username --email --phone
– Tweets anzeigen, die möglicherweise Telefonnummern oder E-Mail-Adressen enthalten.
twint -s "Donald Trump" --verified
– Zeigt Tweets von verifizierten Benutzern an, die über Donald Trump getwittert haben.
twint -g="48.880048,2.385939,1km" -o file.csv --csv
– Tweets aus einem Umkreis von 1 km um einen Ort in Paris extrahieren und in eine CSV-Datei exportieren.
twint -u username -es localhost:9200
– Tweets an Elasticsearch ausgeben
twint -u username -o file.json --json
– Tweets extrahieren und als JSON-Datei speichern.
twint -u username --database tweets.db
– Tweets in einer SQLite-Datenbank speichern.
twint -u username --followers
– Scrapen Sie die Follower eines Twitter-Benutzers.
twint -u username --following
– Scrapen Sie, wem ein Twitter-Benutzer folgt.
twint -u username --favorites
– Sammelt alle Tweets, die ein Benutzer favorisiert hat (sammelt etwa 3200 Tweets).
twint -u username --following --user-full
– Sammeln Sie vollständige Benutzerinformationen, denen eine Person folgt
twint -u username --timeline
– Verwenden Sie eine effektive Methode, um Tweets aus dem Profil eines Benutzers zu sammeln (sammelt etwa 3200 Tweets, einschließlich Retweets und Antworten ).
twint -u username --retweets
– Verwenden Sie eine schnelle Methode, um die letzten 900 Tweets (einschließlich Retweets) aus dem Profil eines Benutzers zu sammeln.
twint -u username --resume resume_file.txt
– Setzt eine Suche fort, beginnend mit der zuletzt gespeicherten Scroll-ID.
Weitere Einzelheiten zu den Befehlen und Optionen finden Sie im Wiki
Twint kann nun als Modul verwendet werden und unterstützt benutzerdefinierte Formatierungen. Weitere Details finden Sie im Wiki
import twint# Configurec = twint.Config()c.Username = "realDonaldTrump"c.Search = "great"# Runtwint.run.Search(c)
Ausgabe
955511208597184512 2018-01-22 18:43:19 GMT <now> pineapples are the best fruit
import twintc = twint.Config()c.Username = "noneprivacy"c.Custom["tweet"] = ["id"]c.Custom["user"] = ["bio"]c.Limit = 10c.Store_csv = Truec.Output = "none"twint.run.Search(c)
In Datei schreiben;
CSV;
JSON;
SQLite;
Elasticsearch.
Details zur Einrichtung von Elasticsearch mit Twint finden Sie im Wiki.
Diagrammdetails finden Sie auch im Wiki.
Wir entwickeln eine Twint Desktop App.
Ich habe versucht, Tweets von einem Benutzer zu entfernen. Ich weiß, dass sie existieren, aber ich erhalte sie nicht
Twitter kann Konten per Shadow-Bann sperren, was bedeutet, dass ihre Tweets nicht über die Suche verfügbar sind. Um dieses Problem zu lösen, übergeben Sie --profile-full
wenn Sie Twint über CLI verwenden, oder, wenn Sie Twint als Modul verwenden, fügen Sie config.Profile_full = True
hinzu. Bitte beachten Sie, dass dieser Vorgang recht langsam sein wird.
Um nur Follower-Benutzernamen/folgende Benutzernamen zu erhalten
twint -u username --followers
twint -u username --following
Um Benutzerinformationen über Follower/folgende Benutzer zu erhalten
twint -u username --followers --user-full
twint -u username --following --user-full
Um nur Benutzerinformationen des Benutzers abzurufen
twint -u username --user-full
Um Benutzerinformationen von Benutzern aus einer Benutzerliste abzurufen
twint --userlist inputlist --user-full
Um 100 englische Tweets zu erhalten und sie ins Italienische zu übersetzen
twint -u noneprivacy --csv --output none.csv --lang en --translate --translate-dest it --limit 100
oder
import twintc = twint.Config()c.Username = "noneprivacy"c.Limit = 100c.Store_csv = Truec.Output = "none.csv"c.Lang = "en"c.Translate = Truec.TranslateDest = "it" twint.run.Search(c)
Hinweise:
Google Translate hat einige Quoten
So verwenden Sie Twint als OSINT-Tool
Grundlegendes Tutorial von Null Byte
Analysieren Sie Tweets mit NLP in wenigen Minuten mit Spark, Optimus und Twint
Laden von Tweets in Kafka und Neo4j
Wenn Sie Fragen haben, an Diskussionen teilnehmen möchten oder zusätzliche Hilfe benötigen, können Sie sich gerne unserem auf Twint fokussierten Kanal im OSINT-Team anschließen