¿Cuáles son las ventajas y desventajas de escribir rastreadores web en varios idiomas?
He escrito rastreadores y programas de extracción de texto tanto en PHP como en Python.
Comencé a usar PHP, así que hablemos primero de las ventajas de PHP:
1. El lenguaje es relativamente simple y PHP es un lenguaje muy informal. Escribir es fácil y te permite concentrarte en lo que quieres hacer, en lugar de en varias reglas gramaticales, etc.
2. Varios módulos funcionales están completos, divididos en dos partes:
1. Descarga de la página web: curl y otras bibliotecas de extensión.
2. : dom, xpath, tidy y varias herramientas de transcodificación pueden ser diferentes de la pregunta del sujeto. Mi rastreador necesita extraer texto, por lo que requiere un procesamiento de texto muy complejo, por lo que varias herramientas de procesamiento de texto convenientes son mis favoritas. ;
Fácil de usar de todos modos.
Desventajas:
1. Capacidades de procesamiento concurrente débiles: dado que PHP no tenía funciones de subprocesos y procesos en ese momento, para lograr concurrencia, es necesario tomar prestado un modelo de toma multicanal. PHP utiliza el modelo seleccionado. Es un poco problemático implementarlo. Tal vez sea debido al problema de nivel que mi programa a menudo comete algunos errores, lo que provoca que se pierdan capturas.
Hablemos de Python:
Ventajas:
1. Varios marcos de rastreo para una descarga conveniente y eficiente de páginas web;
2 Muchos Los modelos de subprocesos y procesos son maduros y estables. El rastreador es un escenario típico de multitarea. Habrá una gran demora al solicitar la página. Los procesos o subprocesos múltiples optimizarán la eficiencia del programa y mejorarán las capacidades de descarga y análisis de todo el sistema.
3. Compatibilidad con GAE Cuando escribí el rastreador por primera vez, GAE acababa de surgir y solo era compatible con Python. El rastreador creado con GAE era casi gratuito. trabajar.
Desventajas:
1. Poca adaptabilidad a HTML no estándar: por ejemplo, si una página contiene chino en el juego de caracteres GB18030 y chino en el juego de caracteres UTF-8, Python no es tan fácil de procesar como PHP y usted mismo necesita hacer mucho trabajo de juicio. Por supuesto, esto supone un problema a la hora de extraer el texto.
Java y C++ también fueron examinados en ese momento, pero eran más problemáticos que los lenguajes de scripting, por lo que fueron abandonados.
En resumen, si desarrollas un lenguaje de script rastreador a pequeña escala, es un lenguaje con ventajas en todos los aspectos. Si desea desarrollar un sistema de rastreo complejo, Java puede ser una opción adicional. Creo que escribir un módulo en C++ es más adecuado. Para un sistema de rastreo, la descarga y el análisis de contenido son solo dos funciones básicas. Un sistema realmente bueno también incluye programación completa de tareas, monitoreo, almacenamiento, almacenamiento de datos de páginas y lógica de actualización, eliminación de duplicaciones, etc. Crawler es una aplicación que consume ancho de banda. Un buen diseño ahorrará mucho ancho de banda y recursos del servidor, y la diferencia entre lo bueno y lo malo es enorme.