Red de conocimiento informático - Material del sitio web - Cómo rastrear el contenido de Zhihu

Cómo rastrear el contenido de Zhihu

El siguiente es 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 (punto técnico principal del rastreador 1)

Para capturar datos del sitio web que requieren inicio de sesión, el inicio de sesión simulado es un paso necesario, pero también suele ser un punto difícil. El inicio de sesión simulado del rastreador Zhihu es un buen ejemplo. Para implementar el inicio de sesión simulado en un sitio web, se requieren dos pasos principales: (1) Analizar el proceso de solicitud de inicio de sesión y encontrar las solicitudes clave y los pasos para iniciar sesión. Las herramientas de análisis pueden incluir las propias de IE (tecla de acceso directo F12), Fiddler y HttpWatcher; (2) Escribir código para simular el proceso de inicio de sesión. Inicio de sesión simulado

(3) Descarga de la página web (punto técnico principal del rastreador 2)

Después del inicio de sesión simulado, puede descargar el HTML de la página web de destino. El rastreador escribe un grupo de subprocesos de conexión de red basado en HttpClient y encapsula los métodos de descarga de páginas web de obtención y publicación de uso común.

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

Obtener automáticamente el código de la página web es el requisito previo para garantizar que la página web descargada sea html no parece confuso. El método proporcionado por el rastreador CNKI puede resolver el problema confuso de la mayoría de las páginas web descargadas confusas.

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

Existen dos métodos comunes de análisis y extracción de páginas web utilizando Java para escribir rastreadores: usar el Paquete Jar de código abierto Jsoup y Regular. En términos generales, hay pocos problemas que Jsoup pueda resolver y que Jsoup no pueda analizar ni extraer. Jsoup es poderoso y hace que el análisis y la extracción sean extremadamente fáciles.

(6) Coincidencia y extracción periódicas (punto técnico principal 5 del rastreador)

Aunque el rastreador utiliza Jsoup para analizar páginas web, todavía encapsula la coincidencia y extracción de datos periódicas, porque regular También puede hacer otras cosas, como usar expresiones regulares en rastreadores para filtrar y determinar direcciones URL.

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

Para los rastreadores, existen diferentes soluciones de deduplicación según el escenario. (1) Para una cantidad pequeña de datos, como decenas de miles o cientos de miles, use Map o Set (2) Para una cantidad mediana de datos, como millones o decenas de millones, use BloomFilter (el famoso Bloom Filter); ) se puede resolver (3) En el caso de grandes cantidades de datos, cientos de millones o miles de millones, Redis puede resolverlo. Zhihu Crawler proporciona una implementación de BloomFilter, pero utiliza Redis para la deduplicación.

(8) Patrones de diseño y otras prácticas avanzadas de programación Java

Además de los principales puntos técnicos de los rastreadores anteriores, la implementación de los rastreadores Zhihu también implica una variedad de patrones de diseño, principalmente el patrón de cadena, modo singleton, 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. Algunos resultados del rastreador