Scrapy es una librería Open Source que nos permite extraer información importante que se encuentra en internet. Es posible leer el contenido de una web y movernos en su estructura HTML para analizar sus datos y explotarlos a diferentes formatos ya sea excel, xml, json, o a una base de datos.
- Para marketing de contenidos: Generar nuestro propio contenido a partir de otra página web.
- Para ganar visibilidad en redes sociales: Interactuar a traves de un robot con usuarios en redes sociales
- Para controlar la imagen y la visibilidad de nuestra marca en internet: Podríamos rastrear la posición en Google de todas las entradas de nuestro blog.
Scrapy se puede instalar con PyPi (Python Package Index) desde el siguiente comando:
pip install Scrapy
Es altamente recomendable instalar Scrapy dentro de un entorno virtual, para no tener problemas con otros proyectos. Para empezar a usar los entornos virtuales antes hay que instalarlo con el siguiente comando:
[sudo] pip install virtualenv
Una vez instalado creamos un entorno virtual:
virtualenv -p /rutaDelInterprete /rutaDondeCrearlo
Para iniciar un entorno virtual nos vamos a la carpeta scripts dentro del entorno y ejecutamos el comando:
activate.bat
Una vez echo esto ya podemos instalar scrapy dentro del entorno virtual.
Para crear un proyecto con scrapy ponemos el siguiente comando desde la consola:
scrapy startproject nombreProyecto
Al acabar te creará una carpeta con el nombre de tu proyecto y dentro de ella todo lo necesario para empezar a trabajar con Scrapy.
Dentro del proyecto de Scrapy podemos encontrar una carpeta llamada spiders, dentro de esta incluimos clases que definen a que url o grupos de urls se realizara el web scraping, que información será extraída de esta y algunas funciones adicionales como formas de continuar en otros enlaces (ej: enlaces de paginación). Dentro de esta carpeta podemos crear tantas clases "spider" como queramos, cada una de estas debe tener un nombre único dentro del proyecto. A continuación se puede ver un trozo de código comentado de una clase spider con sus elementos mínimos para funcionar y el seguimiento de paginación.
Código del ejemplo: https://pastebin.com/s6nnMCj5
Pagina a la que se realiza la prueba: http://quotes.toscrape.com/
Para poder ejecutar la aplicación debemos escribir el siguiente comando en la consola.
scrapy crawl nombreDelSpider
Para este ejemplo seria:
scrapy crawl follow
y si queremos guardar los resultados en algun archivo por ejemplo en formato json podemos hacer lo siguiente:
scrapy crawl follow -o follow.json
Repositorio git: https://github.com/Davd96/ScrapyExamples.git