Conceptos básicos de programación de Python (5) Marco de trabajo del rastreador Scrapy
Scrapy es un framework de rastreo web rápido y potente.
Quizás no sepas mucho sobre el marco. El marco del rastreador es en realidad una colección de estructuras de software y componentes funcionales que implementan funciones del rastreador.
En resumen, Scrapy es un programa de rastreo semiacabado que puede ayudar a los usuarios a implementar rastreadores web profesionales.
Al utilizar el marco Scrapy, no es necesario escribir mucho código. Scrapy hace la mayor parte del trabajo y le permite llamar a algunos códigos para generar automáticamente un programa de rastreo, lo que puede ahorrar mucho tiempo.
Por supuesto, el código generado por el marco es básicamente el mismo. Si encuentra algunas tareas específicas del rastreador, no es tan conveniente como utilizar la biblioteca de solicitudes.
Dispositivo PyCharm
Instalación de prueba:
Aparece la versión del framework, lo que indica que la instalación se realizó correctamente.
¡Dominar la estructura del marco del rastreador Scrapy es lo más importante para hacer un buen uso de Scrapy!
En primer lugar:
La estructura completa se puede resumir simplemente como una estructura "5+2" y tres flujos de datos.
5 módulos principales (y funciones):
(1) Controlar el flujo de datos entre todos los módulos.
(2) Los eventos se pueden activar según las condiciones.
(1) Descargue la página web según sea necesario.
(1)Programación y gestión de todas las solicitudes de rastreo.
(1) Analiza la respuesta devuelta por el descargador.
(2) Generar un elemento de rastreo - elemento raspado.
(3) Generar una solicitud de rastreo adicional: solicitud.
(1) Arrastre provocado por arañas tubulares.
(2) Consiste en un conjunto de secuencias de operaciones, similar a una tubería, y cada operación es un tipo de tubería de proyecto.
(3) Limpiar, inspeccionar y volver a rastrear los datos HTML en el proyecto y almacenar los datos en la base de datos.
2 teclas intermedias:
(1) Control configurable por el usuario entre motor, planificador y descargador.
(2) Modificar, descartar o agregar solicitudes o respuestas.
(1) Reprocesar la solicitud y rastrear.
(2) Modificar, descartar, agregar solicitudes o rastrear elementos.
3 flujos de datos:
(1): Los números en la imagen son 1-2.
1: El motor recibe la solicitud de rastreo de Spider-request.
2. El motor reenvía la solicitud de rastreo al programador para su programación.
(2): Los números de la imagen son 3-4-5-6.
3: el motor recibe la siguiente solicitud de rastreo del programador.
4. El motor envía una solicitud de rastreo al descargador a través del middleware.
5. Después de que el descargador rastrea la página web, genera una respuesta y la envía al motor a través del middleware.
6: El motor envía la respuesta recibida a Spider a través de middleware para su procesamiento.
(3): Números 7-8-9 en la imagen
7.Spider procesa la respuesta y genera un elemento rastreado: un elemento rastreado.
8: El motor envía proyectos rastreados a la cartera de proyectos.
9: El motor envía una solicitud de rastreo al programador.
Proceso de procesamiento de tareas: el rastreo comienza desde la solicitud de rastreo inicial de la araña. El motor controla el flujo de datos de cada módulo, obtiene continuamente solicitudes de rastreo del programador hasta que la solicitud está vacía y finalmente finaliza cuando. los datos se almacenan en la canalización del proyecto.
Como usuario, solo necesita configurar las canalizaciones Spider y Item del marco Scrapy, que son la entrada y salida del flujo de datos, para completar la construcción de un programa rastreador. Scrapy proporciona instrucciones simples de comando del rastreador para ayudar a los usuarios a configurar los archivos restantes con un solo clic, así que echemos un vistazo a algunos comandos útiles.
Scrapy utiliza la línea de comandos para crear y ejecutar rastreadores.
PyCharm abre la terminal e inicia Scrapy:
Formato de línea de comando básico de Scrapy:
Los comandos comunes específicos son los siguientes:
Usemos un ejemplo para aprender a usar el comando:
1. Cree un proyecto de rastreador Scrapy y continúe escribiendo el Scrapy iniciado:
Ejecute este comando y el sistema lo hará automáticamente. Cree un proyecto en el archivo del proyecto y asígnele el nombre pythonDemo.
2. Genere un rastreador espinoso, tomando como ejemplo el sitio web del Ministerio de Educación:
Este comando genera una araña llamada demo y genera el archivo demo.py en el directorio de la araña. .
Este comando sólo se utiliza para generar el archivo demo.py, que también se puede generar manualmente.
Ver el archivo demo.py:
3. Configure el rastreador generado, que es el archivo demo.py:
4. rastrear página web:
Si el rastreo se realiza correctamente, encontraremos que hay un archivo adicional t 20210816_551472.html en pythonDemo, y el contenido de la página web que rastreamos se ha escrito en este archivo.
Este es un uso simple del marco Scrapy.
El objeto Request representa una solicitud HTTP, generada por Spider y ejecutada por Downloader.
El objeto Respuesta representa una respuesta HTTP, que es generada por el descargador y procesada por la araña.
El objeto Item representa el contenido de información extraído de la página HTML, generado por Spider y procesado por la canalización de Item. Los elementos son similares a los tipos de diccionario y se pueden manipular según los tipos de diccionario.