Requisito previo: Implementación de Web Scraping en Python con Scrapy
Scrapy es una biblioteca de Python que se utiliza para el web scraping y la búsqueda de contenidos en toda la web. Utiliza Spiders que rastrea la página para encontrar el contenido especificado en los selectores. Por lo tanto, es una herramienta muy útil para extraer todo el contenido de la página web mediante diferentes selectores.
Para crear una araña y hacer que se arrastre en Scrapy, hay dos formas, podemos crear un directorio que contenga archivos y carpetas y escribir algún código en uno de esos archivos y ejecutar el comando de búsqueda, o podemos interactuar con la araña a través de el shell de línea de comandos de scrapy. Entonces, para interactuar en el shell, debemos estar familiarizados con las herramientas de línea de comando de scrapy.
Las herramientas de línea de comandos de Scrapy proporcionan varios comandos que se pueden usar para varios propósitos. Estudiemos cada comando uno por uno.
Creación de un proyecto Scrapy
Primero, asegúrese de que Python esté instalado en su sistema o no. A continuación, cree un entorno virtual.
Ejemplo:
Estamos usando un entorno virtual para guardar la memoria, ya que descargamos globalmente un paquete tan grande a nuestro sistema, entonces consumirá mucha memoria, y tampoco necesitaremos mucho este paquete hasta que esté enfocado en seguir adelante con él. .
Para activar el entorno virtual que acabamos de crear primero tenemos que entrar en la carpeta Scripts y luego ejecutar el comando activar
guiones de cd
activar
discos compactos..
Ejemplo:
Luego tenemos que ejecutar el siguiente comando para instalar scrapy desde pip y luego el siguiente comando para crear el proyecto scrapy llamado GFGScrapy.
# Este es el comando para instalar scrapy en entorno virtual. creado arriba
pip instalar scrapy
# Este es el comando para iniciar un proyecto scrapy.
scrapy startproject GFGScrapy
Ejemplo:
Ahora vamos a crear una araña en scrapy. Para esa araña, debemos ingresar la URL del sitio que queremos raspar.
# cambia el directorio a aquel donde se hace el proyecto scrapy.
cd GFGScrapy
# ingrese la URL
hombre araña genspider scrapy https://quotes.toscrape.com/
Por lo tanto, creamos una araña raspadora que se arrastra en el sitio mencionado anteriormente.
Ejemplo:
Para ver la lista de herramientas disponibles en scrapy o para obtener ayuda al respecto, escriba el siguiente comando.
Sintaxis:
raspado -h
Si queremos más descripción de cualquier comando en particular, escriba el comando dado.
Sintaxis:
scrapy <comando> -h
Ejemplo:
La lista de comandos con sus aplicaciones se analiza a continuación:
- banco: este comando se utiliza para realizar pruebas comparativas, lo que significa si el software scrapy puede ejecutarse en el entorno del sistema dado.
Sintaxis:
banco raspado
- check: Comprueba los contratos de araña.
Sintaxis:
scrapy check [opciones] <spider>
Ejemplo:
- rastrear: este comando se usa para rastrear la araña a través de la URL especificada y recopilar los datos respectivamente.
Sintaxis:
raspado rastreo spiderman
Ejemplo:
- editar y genspider: Ambos comandos se utilizan para modificar las arañas existentes o crear una nueva araña respectivamente,
- version y view: estos comandos devuelven la versión de scrapy y la URL del sitio tal como los ve la araña, respectivamente.
Sintaxis:
versión scrapy
Este comando abre una nueva pestaña con el nombre de la URL del archivo HTML donde se guardan los datos de la URL especificada,
Sintaxis:
vista scrapy [url]
Ejemplo:
- lista, análisis y configuración: como sugiere el nombre, se utilizan para crear la lista de arañas disponibles, analizar la URL de la araña mencionada y establecer los valores en el archivo settings.py respectivamente.
Comandos personalizados
Además de todas estas herramientas de línea de comandos presentes por defecto, scrapy también proporciona al usuario la capacidad de crear sus propias herramientas personalizadas, como se explica a continuación:
En el archivo settings.py tenemos una opción para agregar herramientas personalizadas bajo el encabezado COMMANDS_MODULE.
Sintaxis:
COMMAND_MODULES = ‘spiderman.comandos’
El formato es <nombre_del_proyecto>.commands, donde commands es la carpeta que contiene todos los archivos commands.py. Vamos a crear un comando personalizado. Vamos a crear un comando personalizado que se usa para rastrear la araña.
- Primero, cree una carpeta de comandos que sea el mismo directorio donde se encuentra el archivo settings.py.
- A continuación, vamos a crear un archivo .py dentro de la carpeta de comandos llamado archivo customcrawl.py , que se utiliza para escribir el trabajo que realizará nuestro comando. Aquí el nombre del comando es scrapy customcrawl. En este archivo, vamos a usar una clase llamada Comando que hereda de ScrapyCommand y contiene tres métodos para crear el comando.
Programa:
Python3
from scrapy.commands import ScrapyCommand class Command(ScrapyCommand): # requires the use of project requires_project = True # syntax for command def syntax(self): return '[options]' # description of command def short_desc(self): return 'Runs the spider using custom command' # the main running command def run(self, args, opts): # derieves to spider of scrapy project spider = self.crawler_process.spiders.list() # calls crawl command for that particular spider self.crawler_process.crawl(spider[0], **opts.__dict__) # starts the crawl self.crawler_process.start()
- Desde ahora, hemos creado una carpeta de comandos y un archivo customcrawl.py dentro de ella, ahora es el momento de dar acceso scrapy a este comando a través del archivo settings.py.
Entonces, debajo del archivo settings.py, mencione un encabezado llamado COMMANDS_MODULE y agregue el nombre de la carpeta de comandos como se muestra:
- Ahora es el momento de ver la salida.
Sintaxis:
scrapy custom_command_file_name
Ejemplo:
Por lo tanto, vimos cómo podemos definir un comando personalizado y usarlo en lugar de usar también los comandos predeterminados. También podemos agregar comandos a la biblioteca e importarlos en la sección del archivo setup.py en scrapy.
Publicación traducida automáticamente
Artículo escrito por harshkumarchoudhary144 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA