Red de conocimiento informático - Material del sitio web - Cómo rastrear los resultados del motor de búsqueda con Python

Cómo rastrear los resultados del motor de búsqueda con Python

Elegí rastrear el html que Baidu conoce como mi fuente de datos de búsqueda. Actualmente planeo hacer una búsqueda de título de página web. Elegí la biblioteca scrapy de Python para rastrear la página web, tomar el título, la URL y el html de la página web, y usar sqlist3. para rastrear la fuente de datos y administrar.

El proceso de rastreo es un proceso en profundidad, que establece cuatro URL de inicio y luego mantiene una base de datos. Hay dos tablas en la base de datos, una es infoLib, que almacena la información principal del rastreo: la. other La tabla es urlLib, que almacena las URL que han sido rastreadas. Es una tabla auxiliar. Antes de rastrear cada página web, debemos determinar si la página web ha sido rastreada (si existe en urlLib). Se utilizará una pequeña cantidad de sintaxis SQL en el proceso de almacenamiento de datos. Como aprendí MySQL antes, esta parte es relativamente fácil de manejar.

El esquema de rastreo web en profundidad es: dada una URL inicial, rastrear todas las URL en la página web y luego continuar rastreando las URL de forma recursiva en la página web. El código se desglosa a continuación para que pueda revisarlo más tarde.

1. Cree un proyecto scrapy:

Al crear el proyecto, puede consultar este tutorial scrapy ejecutando:

[python] ver copia simple

scrapy startproject ***

Cree un proyecto scrapy en el directorio actual y luego agregue las siguientes líneas de código en el directorio actual proyecto scrapy en el directorio actual, y luego en el subdirectorio spiders Cree un archivo .py, que es el archivo principal. py, que es el archivo principal del rastreador. Nota: el nombre del archivo no puede ser el mismo que el nombre del proyecto; de lo contrario, se producirá un error al ejecutar el rastreador después de llamarlo. Consulte ImportError.

2.

[python] Ver texto sin formato

importar scrapy

desde solicitud de importación scrapy

importar sqlite3

clase rsSpider(scrapy.spiders. Spider): #Esta clase hereda de spider en scrapy

name = "zhidao" #Nombra el rastreador "know". # Nombra el rastreador "know", y el comando correspondiente al ejecutar el rastreador es: scrapy crawl zhidao

## download_delay = 1 # El retraso del rastreo es de 1 minuto y el comando correspondiente es: scrapy crawl download_delay = 1 #El retraso del rastreo es de 1 minuto. download_delay = 1 #Solo se usa para controlar la velocidad de rastreo, 1 s/tiempo, se puede usar para manejar programas anti-rastreo

allowed_domains = ["zhidao.baidu.com"] #Rango permitido

url_first = '/question/' #Después de la cadena corta utilizada para resolver el nombre de dominio

start_urls = ["/question/647795152324593805.html", #python

"/ question/23976256.html", #database

"/question/336615223.html", #database

"/question/336615223.html", #C++

"/question/251232779.html", #sistema operativo

"/question/137965104.html" #Programación Unix

] #Definir la URL inicial.

#Defina la URL inicial, hay cinco categorías para conocer la página de inicio

#agregar base de datos

connDataBase = sqlite3.connect("zhidao.db") #Conéctese a la base de datos " zhidao. db"