Versión simple de la búsqueda del sitio
Basado en el motor de búsqueda de noticias del campus
- Idea de implementación: rastree todas las noticias de la red de campus, guárdela en la base de datos MySQL, luego divida los títulos en la base de datos y luego convierta los resultados de la segmentación de la palabra en una tabla de índice. Ingrese un contenido de consulta, segmente el contenido de la consulta, coincida con la lista de segmentación de palabras en la base de datos, asigne la URL correspondiente y luego devuelva el resultado.
Entorno de desarrollo
Biblioteca de dependencia
- Pymysql: interfaz entre Python y MySQL
- jieba: biblioteca de python para el participio de palabras
Arquitectura general
Algunos rastreadores usan Marco de Scrapy para rastrear la red de noticias de la Universidad de Ingeniería y Tecnología de Liaoning. Descripción de las partes principales del marco de Scrapy:
- Archivo intuspider.py: el principal proceso de extracción de la información de la página web, utilizando llamadas de bucle anidadas, utilizando algoritmos de profundidad primero para realizar llamadas recursivas, analizar todas las páginas de noticias HTML de la Universidad de Tecnología de Liaoning, extraer la información requerida (Título, URL) y guardarla en el objeto de elemento. El método de análisis utilizado por los rastreadores es xpath
- items.py Define el objeto para que se rastree.
- Pipeline.py almacena los objetos guardados en la base de datos MySQL a través de la interfaz MySQL. Los otros archivos son algunos archivos de configuración, y casi no hay cambios, y se ha comentado la ubicación de los cambios. La parte del rastreador termina aquí.
La idea general de los motores de búsqueda: participe los títulos almacenados en la base de datos y establecer un índice de palabras clave. En segundo lugar, según la frecuencia de las palabras clave, se establece una tabla índice de palabras clave y ocurrencias. Descripción del documento principal:
- Intu.py: construcción de la tabla de bases de datos, tome los datos rastreados por el rastreador, realice la segmentación de palabras y guárdelo en las tablas hacia adelante y hacia atrás, respectivamente.
- Forward.py: la tabla de reenvío, defina el componente de clase
forwardIndexTableItem , especifique el contenido de la matriz en la tabla y en la clase forwardIndexTable de la clase hacia adelante, el participio del título se realiza y almacena en la tabla de la base de datos. - Léxico: segmentación de palabras, definir la operación: obtener su ID a través de palabras, obtener palabras a través de ID, establecer la lista de segmentación de palabras y la lista de segmentación de palabras de carga;
- Backwardlist: Tabla hacia atrás, procesamiento de datos en la tabla de avance.
- LinesEngine: Search Engine Class, ejecute este archivo directamente, puede devolver el título y la URL correspondientes consultando las palabras que ingresó. El núcleo es segmentar el contenido de entrada, y luego ordenar el título correspondiente de acuerdo con la palabra clave, e imprimir las primeras 10 líneas de acuerdo con el número de palabras clave HIT.
Notas y deficiencias:
- En primer lugar, el rastreador es estático. Si hay títulos duplicados en la base de datos, insertar los datos fallará. La tabla debe ser despejada y recaudada.
- El contenido de la base de datos se soluciona.
- La tasa de éxito de la búsqueda está relacionada con la precisión del participio del tartamudeo. Cuando se arrastra, el diseño de la página web es muy claro, y las noticias que me arrastran no se duplican.
- En el futuro, puede agregar una página web, buscar a través del sitio web y crear una interfaz web.
- Los rastreadores y las búsquedas son independientes, y otras redes de noticias también se pueden rastrear, solo necesitan la parte del rastreador.
Cómo usar
- Preparación del entorno de dependencia: entorno Python3, marco de chatarra, instalación de Pymysql, instalación de la biblioteca de palabras de Jieba, instalación de MySQL, base de datos MySQL MyTable y tabla de datos INTU.
- Primer clon Git al directorio especificado
- Abra la consola en Windows, ingrese la carpeta correspondiente e ingrese a
scrapy crawl Intu - Espere el resultado de gateo, y el rastreo ha terminado.
- Ejecute el archivo soachengine.py e ingrese el contenido de texto que consulta