snscrape ist ein Scraper für soziale Netzwerkdienste (SNS). Es durchsucht Dinge wie Benutzerprofile, Hashtags oder Suchanfragen und gibt die entdeckten Elemente zurück, z. B. die relevanten Beiträge.
Die folgenden Dienste werden derzeit unterstützt:
snscrape erfordert Python 3.8 oder höher. Die Abhängigkeiten des Python-Pakets werden automatisch installiert, wenn Sie snscrape installieren.
Beachten Sie, dass für eine der Abhängigkeiten, lxml, auch libxml2 und libxslt installiert sein müssen.
pip3 install snscrape
Wenn Sie die Entwicklungsversion verwenden möchten:
pip3 install git+https://github.com/JustAnotherArchivist/snscrape.git
Die generische Syntax der CLI von snscrape lautet:
snscrape [GLOBAL-OPTIONS] SCRAPER-NAME [SCRAPER-OPTIONS] [SCRAPER-ARGUMENTS...]
snscrape --help
und snscrape SCRAPER-NAME --help
liefern Details zu den Optionen und Argumenten. snscrape --help
listet außerdem alle verfügbaren Scraper auf.
Die Standardausgabe der CLI ist die URL jedes Ergebnisses.
Einige bemerkenswerte globale Optionen sind:
--jsonl
um die Ausgabe als JSONL zu erhalten. Dazu gehören alle von Snscrape extrahierten Informationen (z. B. Nachrichteninhalt, Datum und Uhrzeit, Bilder; Details variieren je nach Scraper).--max-results NUMBER
um nur die ersten NUMBER
Ergebnisse zurückzugeben.--with-entity
um ein Element der gescrapten Entität abzurufen, z. B. den Benutzer oder den Kanal. Dies wird nicht auf allen Scrapern unterstützt. (Sie können dies zusammen mit --max-results 0
verwenden, um nur die Entitätsinformationen abzurufen.) Sammeln Sie alle Tweets von Jason Scott (@textfiles):
snscrape twitter-user textfiles
Normalerweise ist es sinnvoll, die Ausgabe zur weiteren Verarbeitung in eine Datei umzuleiten, z. B. in Bash mit dem Dateinamen twitter-@textfiles
:
snscrape twitter-user textfiles > twitter-@textfiles
So erhalten Sie die neuesten 100 Tweets mit dem Hashtag #archiveteam:
snscrape --max-results 100 twitter-hashtag archiveteam
Es ist auch möglich, snscrape als Bibliothek in Python zu verwenden, dies ist jedoch derzeit nicht dokumentiert.
Wenn Sie ein Problem mit snscrape entdecken, melden Sie es bitte unter https://github.com/JustAnotherArchivist/snscrape/issues. Wenn Sie die CLI verwenden, führen Sie bitte snscrape mit -vv
aus und fügen Sie die Protokollausgabe in das Problem ein. Wenn Sie snscrape als Modul verwenden, aktivieren Sie bitte die Protokollierung auf Debug-Ebene mithilfe import logging; logging.basicConfig(level = logging.DEBUG)
(bevor Sie snscrape überhaupt verwenden) und fügen Sie die Protokollausgabe in das Problem ein.
In einigen Fällen sind für das Debuggen möglicherweise mehr Informationen erforderlich, als im Protokoll verfügbar sind. Die CLI verfügt über die Option --dump-locals
, die das Dumpen aller lokalen Variablen in snscrape basierend auf wichtigen Protokollmeldungen ermöglicht (und nicht standardmäßig nur bei Abstürzen). Beachten Sie, dass die Dump-Dateien in manchen Fällen vertrauliche Informationen enthalten und möglicherweise dazu verwendet werden könnten, Sie zu identifizieren (z. B. wenn der Dienst Ihre IP-Adresse in seine Antwort einbezieht). Wenn Sie eine Dateiübertragung lieber privat veranlassen möchten, erwähnen Sie dies einfach in der Ausgabe.
Dieses Programm ist freie Software: Sie können es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation veröffentlicht, entweder Version 3 der Lizenz oder (nach Ihrer Wahl) einer späteren Version weiterverbreiten und/oder ändern.
Dieses Programm wird in der Hoffnung verbreitet, dass es nützlich ist, jedoch OHNE JEGLICHE GARANTIE; ohne die stillschweigende Garantie der MARKTGÄNGIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. Weitere Einzelheiten finden Sie in der GNU General Public License.
Sie sollten zusammen mit diesem Programm eine Kopie der GNU General Public License erhalten haben. Wenn nicht, siehe https://www.gnu.org/licenses/.