The 103rd Python: rastreo de libros de la serie Python crawler, lleno de detalles

prefacio

Hola a todos, soy Spicy.

Inconscientemente, he escrito 103 publicaciones de blog. Intentaré darles a todos un número después de las tiras picantes, para que todos puedan consultarlo más tarde. Después de todo, muchas personas lo pusieron en sus colecciones y es fácil para ti encontrarlos. más tarde. Basta con mirar el número directamente. demasiado. Así puedes estar tranquiloinserte la descripción de la imagen aquí

Hoy continuaré con la serie de reptiles para todos. Recuerden no complacerse y no imitarlos fácilmente. Puedes recopilar y estudiar el punto técnico. El senior sigue siendo muy solidario.

En primer lugar, el entorno de desarrollo.

​ python3.7

pycharm

Segundo, análisis de programas e implementación de código.

inserte la descripción de la imagen aquí

Primero obtenga los recursos de su página:

import requests
from lxml import etree
#资源地址
url = ' 地址'
#请求头
headers = {
    
    
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.82 Safari/537.36'
}
#页面响应
response = requests.get(url=url,headers=headers)
#数据转换
data = etree.HTML(response.text)

A continuación, obtenga todos los libros a través del análisis de páginas:

inserte la descripción de la imagen aquí

#获取到排行榜所有书
book_info_list = data.xpath('//div[@class="item"]')

Al ingresar al módulo, puede encontrar que todas las páginas de detalles del libro se colocan en esta ruta:

inserte la descripción de la imagen aquí

Luego podemos filtrar y obtener la ruta de empalme:

for book_info in book_info_list:
    #拿到path
    page_id = book_info.xpath('div[@class="image"]/a/@href')[0]
	#拼接到主域名下
    url = url[0:19] + page_id

Hay un enlace de descarga en la página de detalles, que ahorra mucho esfuerzo y lo analiza a través de la página:

inserte la descripción de la imagen aquí

Puede ver que su URL de descarga pasa los parámetros y el título del libro, luego puede obtener el enlace y unirlo para obtener el enlace de descarga y obtener el nombre del libro como una copia de seguridad de la descarga:

for book_info in book_info_list:
    #拿到path
    page_id = book_info.xpath('div[@class="image"]/a/@href')[0]
	#拼接到主域名下
    url = url[0:19] + page_id

	#获取详情页面
    response = requests.get(url=url,headers=headers)
    info_page = etree.HTML(response.text)
    #拿到下载path
    download_url = info_page.xpath('//div[@class="readbtn"]/a/@href')[2]
	#拼接url
    download_url = url[0:19] + download_url
	#拿到书名字
    book_name = download_url.split('=')[2]

Luego, inicie una solicitud para el enlace de descarga y escríbalo localmente a través del archivo I/O:

    boo_txt = requests.get(url=download_url,headers=headers)
    with open('book/%s.txt'%book_name,'w',encoding='utf-8') as f:
        f.write(boo_txt.text)

Echemos un vistazo a los resultados:

inserte la descripción de la imagen aquí

inserte la descripción de la imagen aquí

De esta manera, puede obtener todos los libros de la lista, lo cual es muy conveniente y rápido.

3. Resumen del proyecto

Primero, debe analizar manualmente los pasos de la ruta de descarga y luego implementar estos pasos uno por uno con el código. fácil y sencillo

De esta manera, puede obtener todas las novelas en la lista de clasificación, lo cual es muy conveniente y rápido. Además, hay un código fuente anterior que se puede encontrar en la pequeña tarjeta en la parte inferior, y algunos libros que usé antes, rutas de mapas cerebrales, videos, etc., no puedo dejarlos ~
inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/AI19970205/article/details/124107409
Recomendado
Clasificación