Conceptos básicos de programación de Python (5) Marco de trabajo del rastreador Scrapy
Después de estudiar los cuatro capítulos anteriores, ya podemos usar la biblioteca Requests, la biblioteca Beautiful Soup y la biblioteca Re para escribir programas básicos de rastreo de Python. Entonces, en este capítulo, aprenderemos sobre un marco de rastreo web profesional: Scrapy. Así es, es un marco, no una biblioteca de funciones como la presentada anteriormente.
Scrapy es un framework de rastreo web rápido y potente.
Quizás no sepas mucho sobre qué es un 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 ya ha realizado la mayor parte del trabajo, lo que le permite generar automáticamente un programa de rastreo llamando a unas pocas líneas de código. Ahorra 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 usar la biblioteca de Solicitudes para crearlo usted mismo.
Instalación de PyCharm
Instalación de prueba:
Aparece la versión del framework indicando que la instalación fue exitosa.
¡Dominar la estructura del marco del rastreador Scrapy es la máxima prioridad para utilizar bien Scrapy!
Primero, la imagen de arriba:
La estructura completa se puede resumir simplemente como: estructura "5 2" y 3 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) Descargar páginas web previa solicitud.
(1) Programe y administre todas las solicitudes de rastreo.
(1) Analiza la respuesta devuelta por DOWNLOADER --response.
(2) Generar elemento raspado - elemento raspado.
(3) Generar solicitudes de rastreo adicionales: solicitud.
(1) Procese los elementos rastreados generados por SPIDER en forma de canalización.
(2) Consiste en un conjunto de secuencias de operaciones, similar a una canalización, y cada operación es del tipo ITEM PIPELINES.
(3) Limpiar, verificar y duplicar los datos HTML en los elementos rastreados y almacenar los datos en la base de datos.
2 teclas intermedias:
(1) Control configurable por el usuario entre Engine, Scheduler y Downloader.
(2) Modificar, descartar o añadir solicitudes o respuestas.
(1) Reprocesar solicitudes y elementos rastreados.
(2) Modificar, descartar, agregar solicitudes o rastrear elementos.
3 flujos de datos:
(1): Números 1-2 en la figura
1: El motor obtiene la solicitud de rastreo --request de Spider.
2: El motor reenvía la solicitud de rastreo al Programador para su programación.
(2): Números 3-4-5-6 en la imagen
3: El motor obtiene la siguiente solicitud de rastreo del Programador.
4: El motor envía la solicitud de rastreo al Descargador a través del middleware.
5: Después de rastrear la página web, Downloader genera una respuesta --respuesta, que se envía al motor a través del middleware.
6: Engine 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: Después de que Spider procesa la respuesta, genera un elemento raspado: elemento raspado.
8: El motor envía los elementos rastreados a Item Pipelines.
9: El motor envía una solicitud de rastreo al Programador.
Flujo de procesamiento de tareas: a partir de la solicitud de rastreo inicial de Spider, Engine 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 almacena los datos en Item Pipelines Finish.
Como usuario, solo necesita configurar Spider y Item Pipelines 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 de comando de rastreador simples para ayudar a los usuarios a configurar los archivos restantes con un solo clic. Echemos un vistazo a algunos comandos útiles.
Scrapy usa la línea de comando para crear y ejecutar rastreadores
PyCharm abre Terminal e inicia Scrapy:
Formato básico de línea de comando de Scrapy:
Los comandos específicos más utilizados son los siguientes:
Usemos un ejemplo para aprender a usar el comando:
1. Cree un proyecto de rastreador Scrapy y continúe escribiendo en el Scrapy iniciado:
Después de ejecutar este comando, el sistema creará automáticamente un proyecto en el archivo de proyecto PyCharm llamado pythonDemo.
2. Genere un rastreador Scrapy, tomando como ejemplo el sitio web del Ministerio de Educación:
El comando genera una araña llamada demo y genera el archivo demo.py en el directorio Spiders. .
El comando solo se usa para generar el archivo demo.py, que también se puede generar manualmente.
Observe el archivo demo.py:
3. Configure el rastreador de araña generado, que es el archivo demo.py:
4. Ejecute el rastreador y rastrear página web:
Si el rastreo se realiza correctamente, encontrará que hay un archivo adicional t20210816_551472.html en pythonDemo, y el contenido de la página web que rastreamos se ha escrito en este archivo.
Lo anterior es el uso simple del marco Scrapy.
El objeto Request representa una solicitud HTTP, generada por Spider y ejecutada por Downloader.
El objeto Response representa una respuesta HTTP, generada por Downloader y procesada por Spider.
El objeto Item representa un contenido de información extraído de la página HTML, generado por Spider y procesado por Item Pipelines. El elemento es similar a un tipo de diccionario y se puede operar según el tipo de diccionario.