¿Cuáles son los marcos de trabajo de rastreo comunes y útiles en Python?
Debido a los requisitos del proyecto, recopilé y utilicé algunas bibliotecas relacionadas con rastreadores e hice algunos análisis comparativos. Aquí hay algunas bibliotecas con las que me he encontrado:
Beautiful Soup. Es bien conocido e integra algunos requisitos comunes de los rastreadores. Desventajas: JS no se puede cargar.
Crasposo. Parece ser un marco de rastreo muy poderoso que puede satisfacer el rastreo simple de páginas (por ejemplo, puede conocer claramente el patrón de URL). Con este marco, puede rastrear fácilmente datos como la información de productos de Amazon. Pero para páginas un poco más complejas, como la información de la página de Weibo, este marco no puede satisfacer las necesidades.
mecanizar. Ventajas: Se puede cargar JS. Desventajas: Falta mucha documentación. Sin embargo, según ejemplos oficiales y métodos probados con carne humana, todavía es apenas utilizable.
Selenio. Este es un controlador que llama al navegador. A través de esta biblioteca, puede llamar directamente al navegador para completar ciertas operaciones, como ingresar un código de verificación.
cola. Un marco de rastreo distribuido. El diseño general del proyecto es un poco malo y el acoplamiento entre módulos es alto, pero vale la pena aprender de él.
Las siguientes son algunas de mis experiencias prácticas:
Para necesidades simples, como información con un patrón fijo, puedes hacer lo que quieras.
Para requisitos más complejos, como rastrear páginas dinámicas, involucrar transiciones de estado, involucrar mecanismos anti-rastreador y alta concurrencia, en este caso es difícil encontrar una biblioteca que cumpla con muchos requisitos. Sólo puedo escribirlo yo mismo.
En cuanto a lo que mencionó el interlocutor:
Además, ¿cuáles son las ventajas de utilizar el marco de rastreo de Python existente en comparación con el uso directo de la biblioteca integrada? Porque Python en sí es muy sencillo de escribir rastreadores.
La biblioteca de terceros puede hacer cosas que la biblioteca integrada no puede o es difícil de hacer, eso es todo. Además, si el rastreador es simple o no depende completamente de las necesidades y no tiene nada que ver con Python.