snscrape es un raspador para servicios de redes sociales (SNS). Elimina elementos como perfiles de usuario, hashtags o búsquedas y devuelve los elementos descubiertos, por ejemplo, las publicaciones relevantes.
Actualmente se admiten los siguientes servicios:
snscrape requiere Python 3.8 o superior. Las dependencias del paquete Python se instalan automáticamente cuando instala snscrape.
Tenga en cuenta que una de las dependencias, lxml, también requiere la instalación de libxml2 y libxslt.
pip3 install snscrape
Si desea utilizar la versión de desarrollo:
pip3 install git+https://github.com/JustAnotherArchivist/snscrape.git
La sintaxis genérica de la CLI de snscrape es:
snscrape [GLOBAL-OPTIONS] SCRAPER-NAME [SCRAPER-OPTIONS] [SCRAPER-ARGUMENTS...]
snscrape --help
y snscrape SCRAPER-NAME --help
proporcionan detalles sobre las opciones y argumentos. snscrape --help
también enumera todos los scrapers disponibles.
La salida predeterminada de la CLI es la URL de cada resultado.
Algunas opciones globales destacables son:
--jsonl
para obtener el resultado como JSONL. Esto incluye toda la información extraída por snscrape (por ejemplo, contenido del mensaje, fecha y hora, imágenes; los detalles varían según el scraper).--max-results NUMBER
para devolver solo los primeros NUMBER
resultados.--with-entity
para obtener un elemento de la entidad que se está eliminando, por ejemplo, el usuario o el canal. Esto no es compatible con todos los raspadores. (Puede usar esto junto con --max-results 0
para obtener solo la información de la entidad). Recopile todos los tweets de Jason Scott (@textfiles):
snscrape twitter-user textfiles
Generalmente es útil redirigir la salida a un archivo para su posterior procesamiento, por ejemplo, en bash usando el nombre de archivo twitter-@textfiles
:
snscrape twitter-user textfiles > twitter-@textfiles
Para obtener los últimos 100 tweets con el hashtag #archiveteam:
snscrape --max-results 100 twitter-hashtag archiveteam
También es posible utilizar snscrape como biblioteca en Python, pero esto no está documentado actualmente.
Si descubre un problema con snscrape, infórmelo en https://github.com/JustAnotherArchivist/snscrape/issues. Si utiliza la CLI, ejecute snscrape con -vv
e incluya la salida del registro en el problema. Si utiliza snscrape como módulo, habilite el registro a nivel de depuración mediante import logging; logging.basicConfig(level = logging.DEBUG)
(antes de usar snscrape) e incluya la salida del registro en el problema.
En algunos casos, la depuración puede requerir más información de la que está disponible en el registro. La CLI tiene una opción --dump-locals
que permite volcar todas las variables locales dentro de snscrape en función de mensajes de registro importantes (en lugar de, de forma predeterminada, solo en caso de fallas). Tenga en cuenta que los archivos de volcado pueden contener información confidencial en algunos casos y podrían usarse para identificarlo (por ejemplo, si el servicio incluye su dirección IP en su respuesta). Si prefieres organizar una transferencia de archivos de forma privada, simplemente menciónalo en el problema.
Este programa es software libre: puede redistribuirlo y/o modificarlo según los términos de la Licencia Pública General GNU publicada por la Free Software Foundation, ya sea la versión 3 de la Licencia o (a su elección) cualquier versión posterior.
Este programa se distribuye con la esperanza de que sea de utilidad, pero SIN NINGUNA GARANTÍA; sin siquiera la garantía implícita de COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Consulte la Licencia pública general de GNU para obtener más detalles.
Debería haber recibido una copia de la Licencia Pública General GNU junto con este programa. De lo contrario, consulte https://www.gnu.org/licenses/.