Red de conocimiento del abogados - Ley de patentes - ¿Cuál es la relación entre scrapy y python?

¿Cuál es la relación entre scrapy y python?

Scrapy es un marco de rastreo de datos web rápido y de alto nivel desarrollado en Python, que se utiliza para rastrear sitios web y extraer datos estructurados de las páginas. Scrapy es versátil y puede usarse para minería y monitoreo de datos.

Lo atractivo de Scrapy es que es un framework que cualquiera puede modificar fácilmente según sus necesidades. También proporciona clases base para varios tipos de rastreadores, como BaseSpider, rastreadores de mapas de sitios, etc.

Scrapy es el marco de rastreo más utilizado en el mundo de Python. También es el mejor marco de rastreo entre varios lenguajes populares que he dominado, ¡sin excepción! Creo que también es el marco más difícil de aprender, sin excepción. Muchas personas que son nuevas en Scarpy a menudo se quejan de que no tienen idea de cómo comenzar con Scrapy. Incluso si leen la documentación china, les resulta difícil de entender. Tuve el mismo sentimiento cuando entré en contacto por primera vez con Scrapy. La razón por la que Scrapy es difícil de aprender es que su documentación oficial es demasiado confusa y carece de ejemplos de código prácticos, lo que la hace confusa y confusa. Aunque su documentación es deficiente, no oculta su brillantez. Sigue siendo el mejor marco de rastreo en el mundo de Python. Sus ideas arquitectónicas, eficiencia de ejecución de araña y escalabilidad son sobresalientes. Junto con la simplicidad y ligereza del lenguaje Python, el desarrollo del rastreador es más efectivo con la mitad del esfuerzo.

Recomendaciones relacionadas: "Tutorial básico de Python"

Ventajas de Scrapy:

(1) Proporciona almacenamiento en caché HTTP integrado para acelerar el desarrollo local.

(2) Proporciona un mecanismo de ajuste automático del programa y tiene la capacidad de cumplir con la configuración de robots.txt.

(3) Puede definir el límite de profundidad de rastreo para evitar que los rastreadores entren en enlaces de bucle infinito.

(4) La sesión se mantendrá automáticamente.

(5) Realizar autenticación básica HTTP automática. No es necesario guardar el estado explícitamente.

(6) El formulario de inicio de sesión se puede completar automáticamente.

(7) Scrapy tiene un middleware integrado que puede configurar automáticamente el encabezado de referencia en la solicitud.

(8) Admite la redirección a través de respuestas 3xx y también se puede actualizar a través de meta HTML.

(9) Evite quedar atrapado por metaredireccionamientos utilizados por sitios web para detectar páginas sin soporte JS.

(10) Utilice el selector CSS o XPath para escribir el analizador de forma predeterminada.

(11) Las páginas JavaScript se pueden representar a través de Splash o cualquier otra tecnología como Selenium.

(12) Tiene un fuerte apoyo de la comunidad y complementos y extensiones enriquecidos para ampliar su funcionalidad.

(13) proporciona una araña universal para rastrear formatos comunes: mapa del sitio, CSV y XML.

(14) Soporte integrado para exportar datos recopilados en múltiples formatos (JSON, CSV, XML, líneas JSON) y almacenarlos en múltiples servidores (FTP, S3, sistema de archivos local).

Principio del marco Scrapy

Scrapy Engine: Responsable de la comunicación, señales, transmisión de datos, etc. entre Spider, ItemPipeline, Downloader y Scheduler.

Programador (Programador): Responsable de recibir las solicitudes de Solicitud enviadas por el motor, ordenarlas de cierta manera, ingresarlas en la cola y devolverlas al motor cuando el motor las necesite.

Descargador: Responsable de descargar todas las Solicitudes enviadas por Scrapy Engine y devolver las Respuestas obtenidas a Scrapy Engine, que se entrega a Spider para su procesamiento.

Spider (rastreador): Responsable de. procesar todas las respuestas, analizar y extraer datos, obtener los datos requeridos por el campo Elemento y enviar la URL que debe seguirse al motor, y luego ingresar al Programador (programador) nuevamente,

Canalización de elementos : un lugar responsable de procesar los elementos obtenidos de Spider y realizar un posprocesamiento (análisis detallado, filtrado, almacenamiento, etc.).

Middlewares de descarga: puedes considerarlo como un componente que se puede personalizar y ampliar. la función de descarga.

/p>

Introducción a cada componente de Scrapy

·Scrapy Engine:

El motor es responsable de controlar el flujo de datos a través de todos los componentes del sistema y desencadenar eventos cuando ocurren las acciones correspondientes. También es el punto de entrada del programa. Se puede iniciar en la línea de comando mediante instrucciones scrapy, o se puede iniciar llamando al método de inicio después de la creación de instancias mediante programación ordinaria.

·Programador (Scheduler)

El programador recibe solicitudes de rastreo (Solicitudes) del motor y las pone en cola para que puedan ser proporcionadas al motor cuando el motor las solicite más tarde. En términos generales, no necesitamos programar el programador directamente, está controlado automáticamente por el proceso principal de Scrapy.

·Downloader (Down-loader)

El descargador es responsable de obtener los datos de la página y proporcionarlos al motor, y luego proporcionar el objeto de resultado de respuesta del sitio web a la araña ( Araña). Específicamente, el descargador es responsable de procesar el objeto de solicitud final Solicitud y pasar el objeto de respuesta devuelto a la araña.

·Spiders - Spiders

Spider es una clase escrita por usuarios para analizar los resultados de la respuesta (Respuesta) y extraer Elementos (es decir, Elementos obtenidos) o URL de seguimiento adicionales. Cada araña es responsable de manejar uno o varios sitios web específicos.

·Data Pipeline - Item Pipeline

Item Pipeline es responsable de procesar los elementos extraídos por Spider. Los procesos típicos incluyen limpieza, validación y persistencia (por ejemplo, acceso a una base de datos).

·Middlewares del descargador

El middleware del descargador es un enlace específico entre el motor y el descargador, que procesa el descargador y lo pasa a la respuesta del motor. Proporciona un mecanismo simple para ampliar la funcionalidad de Scrapy mediante la inserción de código personalizado.

·Middleware Spider (Spider middle-wares)

El middleware Spider es un enlace específico entre el motor y el Spider, que procesa la entrada (Respuesta) y la salida (Elementos y solicitudes) del Spider. . Proporciona un mecanismo simple para ampliar la funcionalidad de Scrapy mediante la inserción de código personalizado.

Se puede ver en la arquitectura del sistema de Scrapy que tiene subdivisiones muy específicas de todo el proceso de rastreo y se hace cargo de la mayor parte del trabajo complejo, como generar objetos de solicitud y respuesta y controlar la concurrencia de los procesos. rastreador. espera.