snscrape est un scraper pour les services de réseaux sociaux (SNS). Il récupère des éléments tels que les profils d'utilisateurs, les hashtags ou les recherches et renvoie les éléments découverts, par exemple les publications pertinentes.
Les services suivants sont actuellement pris en charge :
snscrape nécessite Python 3.8 ou supérieur. Les dépendances du package Python sont installées automatiquement lorsque vous installez snscrape.
Notez que l'une des dépendances, lxml, nécessite également l'installation de libxml2 et libxslt.
pip3 install snscrape
Si vous souhaitez utiliser la version de développement :
pip3 install git+https://github.com/JustAnotherArchivist/snscrape.git
La syntaxe générique de la CLI de snscrape est :
snscrape [GLOBAL-OPTIONS] SCRAPER-NAME [SCRAPER-OPTIONS] [SCRAPER-ARGUMENTS...]
snscrape --help
et snscrape SCRAPER-NAME --help
fournissent des détails sur les options et les arguments. snscrape --help
répertorie également tous les scrapers disponibles.
La sortie par défaut de la CLI est l'URL de chaque résultat.
Certaines options globales remarquables sont :
--jsonl
pour obtenir une sortie au format JSONL. Cela inclut toutes les informations extraites par snscrape (par exemple, le contenu du message, la date et l'heure, les images ; les détails varient selon le scraper).--max-results NUMBER
pour renvoyer uniquement les premiers résultats NUMBER
.--with-entity
pour obtenir un élément sur l'entité en cours de récupération, par exemple l'utilisateur ou le canal. Ceci n'est pas pris en charge sur tous les scrapers. (Vous pouvez l'utiliser avec --max-results 0
pour récupérer uniquement les informations sur l'entité.) Collectez tous les tweets de Jason Scott (@textfiles) :
snscrape twitter-user textfiles
Il est généralement utile de rediriger la sortie vers un fichier pour un traitement ultérieur, par exemple dans bash en utilisant le nom de fichier twitter-@textfiles
:
snscrape twitter-user textfiles > twitter-@textfiles
Pour recevoir les 100 derniers tweets avec le hashtag #archiveteam :
snscrape --max-results 100 twitter-hashtag archiveteam
Il est également possible d'utiliser snscrape comme bibliothèque en Python, mais cela n'est actuellement pas documenté.
Si vous découvrez un problème avec snscrape, veuillez le signaler sur https://github.com/JustAnotherArchivist/snscrape/issues. Si vous utilisez la CLI, veuillez exécuter snscrape avec -vv
et inclure la sortie du journal dans le problème. Si vous utilisez snscrape comme module, veuillez activer la journalisation au niveau du débogage à l'aide de import logging; logging.basicConfig(level = logging.DEBUG)
(avant d'utiliser snscrape) et incluez la sortie du journal dans le problème.
Dans certains cas, le débogage peut nécessiter plus d'informations que celles disponibles dans le journal. La CLI dispose d'une option --dump-locals
qui permet de vider toutes les variables locales dans snscrape en fonction des messages de journal importants (plutôt que, par défaut, uniquement en cas de crash). Notez que les fichiers de vidage peuvent contenir des informations sensibles dans certains cas et pourraient potentiellement être utilisés pour vous identifier (par exemple si le service inclut votre adresse IP dans sa réponse). Si vous préférez organiser un transfert de fichiers en privé, mentionnez-le simplement dans le numéro.
Ce programme est un logiciel libre : vous pouvez le redistribuer et/ou le modifier selon les termes de la licence publique générale GNU telle que publiée par la Free Software Foundation, soit la version 3 de la licence, soit (à votre choix) toute version ultérieure.
Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE GARANTIE ; sans même la garantie implicite de QUALITÉ MARCHANDE ou d’ADAPTATION À UN USAGE PARTICULIER. Consultez la licence publique générale GNU pour plus de détails.
Vous devriez avoir reçu une copie de la licence publique générale GNU avec ce programme. Sinon, consultez https://www.gnu.org/licenses/.