Cómo rastrear los resultados del motor de búsqueda con Python
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"