Red de Respuestas Legales - Derecho de patentes - ¿Cómo escribir un rastreador Zhihu usando JAVA?

¿Cómo escribir un rastreador Zhihu usando JAVA?

Expliquemos el código fuente del rastreador Zhihu y los principales puntos técnicos involucrados:

(1) Organización del paquete

(2) Inicio de sesión simulado (principales puntos técnicos del rastreador 1)< /p >

El inicio de sesión simulado es un paso necesario y, a menudo, difícil para rastrear datos de sitios web que requieren inicio de sesión. El inicio de sesión simulado del rastreador Zhihu puede ser un buen caso. Para implementar el inicio de sesión simulado de un sitio web, se requieren dos pasos: (1) Analizar el proceso de solicitud de inicio de sesión y encontrar las solicitudes y los pasos clave. Las herramientas de análisis pueden incluir IE (tecla de acceso directo F12), Fiddler, HttpWatcher (2) Escribir código para simular el proceso de inicio de sesión.

(3) Descarga de la página web (puntos técnicos del rastreador 2)

Después de simular el inicio de sesión, puede descargar el HTML de la página web de destino. Zhihu Crawler escribió un grupo de subprocesos de conexión de red basado en HttpClient, que encapsula dos métodos comúnmente utilizados para descargar páginas web: obtener y publicar.

(4) Obtener automáticamente el código de la página web (punto técnico principal 3 del rastreador)

La adquisición automática del código de la página web es el requisito previo para garantizar que la página web descargada html no aparece confuso. El rastreador Zhihu proporciona métodos para resolver el problema del código confuso en la mayoría de las páginas web descargadas.

(5) Análisis y extracción de páginas web (punto técnico principal 4 de los rastreadores)

Utilice Java para escribir rastreadores y existen dos métodos comunes para analizar y extraer páginas web: usar el paquete Jar de código abierto Jsoup y las expresiones regulares cambian. En términos generales, Jsoup puede resolver el problema. Es raro que Jsoup no pueda analizar y extraer. Las poderosas funciones de Jsoup hacen que el análisis y la extracción sean extremadamente simples. El rastreador Zhihu usa Jsoup.

(6) Coincidencia y extracción convencionales (puntos 5 de la tecnología del rastreador)

Aunque los rastreadores Zhihu usan Jsoup para analizar páginas web, aún encapsulan métodos regulares de coincidencia y extracción de datos, porque usted También puede hacer otras cosas, como utilizar el filtrado regular para determinar la dirección URL en el rastreador Zhihu.

(7) Deduplicación (punto técnico principal 6 de los rastreadores)

Para los rastreadores, existen diferentes soluciones de deduplicación según los diferentes escenarios. (1) Para pequeñas cantidades de datos, como decenas de miles o cientos de miles, puede usar Map o Set (2) Para datos medianos, como millones o decenas de millones, puede usar BloomFilter (el famoso Bloom Filter) (3) Una gran cantidad de datos, cientos de millones o miles de millones, se pueden resolver con Redis. Zhihu Crawler proporciona una implementación de BloomFilter, pero usa Redis para eliminar la duplicación.

(8) Prácticas avanzadas de programación Java como patrones de diseño.

Además de los principales puntos técnicos del rastreador anterior, la implementación del rastreador Zhihu también implica una variedad de patrones de diseño, principalmente modo en cadena, modo único, modo combinado, etc., y también utiliza la reflexión de Java. . Además de aprender la tecnología de rastreo, este también es un buen caso para aprender patrones de diseño y mecanismos de reflexión de Java.

4. Mostrar algunos resultados del rastreo