Página de expresiones regulares para rastrear la enciclopedia de la vergüenza

Este artículo utiliza principalmente el módulo de solicitudes para solicitar páginas web, utiliza expresiones regulares para analizar los datos y guarda las imágenes de la Enciclopedia de la vergüenza, y también completa la función de paginación.

1. El uso específico del módulo de solicitudes puede referirse a este artículo.

2. Expresión regular que también he publicado antes, el enlace es el siguiente: expresión regular

Luego ingrese el enlace de escritura del código:
inicio, importamos el módulo

import re
import requests
import os

Crea carpetas para guardar imágenes binarias

if not os.path.exists('./糗事百科'):
    os.mkdir('./糗事百科/')

Agregue encabezados de solicitud (utilizados para simular que usted es un navegador que envía una solicitud al servidor).

headers = {
    
    
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240"
}

Debido a que este es mi propio encabezado de solicitud, por el bien de la privacidad, no lo terminaré.
Inserte la descripción de la imagen aquí
Hicimos clic en la página siguiente y encontramos que solo los parámetros detrás de la página han cambiado, de 1 a 2. A partir de esto, podemos encontrar su ley y podemos usar el bucle for para pasar la página.
Seleccionamos la imagen con el mouse, hacemos clic derecho para verificarla y encontramos que el atributo src es parte de la URL de la imagen. La analizamos a través de expresiones regulares y luego empalmamos la URL con ella.
Expresión regular:

ex = '<div class="thumb">.*?<img src="(.*?)" alt=.*?</div>' 

Inserte la descripción de la imagen aquí
A continuación se muestra el código fuente para pasar páginas y analizar páginas web

for i in range(1, 6):
    new_url = format(url % i)
    # print(new_url)
    response_text = requests.get(url=url, headers=headers).text
    # 通过正则表达式匹配图片的url
    img_src_list = re.findall(ex, response_text, re.S)
    for img_src in img_src_list:
        img_url = "https:" + img_src
        file_name = img_src.split('/')[-1]  # 命名文件名
        img_respons_content = requests.get(url=img_url, headers=headers).content

Finalmente guarda la imagen

        with open('./糗事百科/{}'.format(file_name), 'wb') as f:
            f.write(img_respons_content)
            print(file_name+"保存成功!!")

Inserte la descripción de la imagen aquí
El código completo es el siguiente

# -*- coding: utf-8 -*-
# -*- coding: utf-8 -*-
# @Time      :  2020-12-29 17:17
# @author    :  jianwei
# @Software  :  PyCharm

import re
import requests
import os

if not os.path.exists('./糗事百科'):
    os.mkdir('./糗事百科/')
headers = {
    
    
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0(请求头不方便透露)"
}
url = 'https://www.qiushibaike.com/imgrank/page/%d/'
ex = '<div class="thumb">.*?<img src="(.*?)" alt=.*?</div>'  # 正则表达式
# 翻页
for i in range(1, 6):
    new_url = format(url % i)
    # print(new_url)
    response_text = requests.get(url=url, headers=headers).text
    # 通过正则表达式匹配图片的url
    img_src_list = re.findall(ex, response_text, re.S)
    for img_src in img_src_list:
        img_url = "https:" + img_src
        file_name = img_src.split('/')[-1]  # 命名文件名
        img_respons_content = requests.get(url=img_url, headers=headers).content
        # 保存图片
        with open('./糗事百科/{}'.format(file_name), 'wb') as f:
            f.write(img_respons_content)
            print(file_name+"保存成功!!")


¡Gracias por su apoyo y suscripción! !

Supongo que te gusta

Origin blog.csdn.net/qq_48657881/article/details/112093755
Recomendado
Clasificación