imagen del rastreador de Python

Un código de imagen de rastreo de pathon simple.

Resuma los problemas encontrados:

1. Rastrear el código del sitio web cuando encuentre el código de rastreo, el sitio web no se puede rastrear

Solución: modifique User-Agent para mostrar Python de forma predeterminada

Modifica la URL que visitas, cómo encontrarla y mira hacia abajo, solo copia eso

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

2. El código fuente de la página web rastreada está distorsionado en chino, como se muestra en la figura.

 

Simplemente configure el código de los datos rastreados

response.text.encode(response.encoding).decode('utf-8')

 

3. El rastreo está vacío

La razón puede ser que en el análisis de expresiones regulares de la página web, es necesario analizar la estructura rastreada y hacer una comparación completa.

 No puedo arrastrarme aquí, el motivo es

Hay más espacios, pero no hay espacios en los datos rastreados. Nota: Es mejor mirar el html rastreado para buscar coincidencias aquí y encontrar las etiquetas coincidentes normales en el interior, porque la estructura que se ve en el código fuente de la página web es ligeramente diferente de la estructura rastreada, y la estructura rastreada agregará algunos espacios a la estructura, lo que resulta en No puede coincidir con los datos.

4. Se informa de un error al guardar la imagen.

El motivo del problema es que la ruta de la imagen que rastreé no está configurada con http en el sitio web y Python no puede solicitar una dirección válida. Debe agregarla manualmente.

#循环爬取的url 挨个添加一下就好了
url = 'http:'+url

import requests
import re
import os
import time

url = "https://www.woyaogexing.com/tupian/mingxing/2018/41351.html"
# 遇到反扒需要设置
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win32; x32) AppleWebKit/588.6 (KHTML, like Gecko) Chrome/15.0.4007.15 Safari/537.36'}
# 修改自己身份
response = requests.get(url,headers=headers)

#.encode(response.encoding).decode('utf-8') 中文乱码解决
html = response.text.encode(response.encoding).decode('utf-8')
print(html)
""" 解析网页"""
dir_name = re.findall('<div class="pifutitle"><h1>(.*?)</h1></div>',html)[0]# 文件名
print(dir_name)
if not os.path.exists(dir_name): #判断是否有当前文件夹 否则创建
    os.mkdir(dir_name)

urls = re.findall('<img class="lazy" src="(.*?)"/>',html) # 正则表达式解析网页
# <img class="lazy" src="//img2.woyaogexing.com/2018/07/02/c0ddb88553a24141a7b471cae28967d8!600x600.jpeg"/>

"""保存图片"""
for url in urls:
    time.sleep(1) #延迟一秒
    file_name = url.split('/')[-1]
    new_url = 'http:'+url
    response = requests.get(new_url,headers=headers)  # 请求地址必须http 没有就会报错
    with open(dir_name + '/' +file_name,'wb') as f:
        f.write(response.content)

 

Supongo que te gusta

Origin blog.csdn.net/tang242424/article/details/107486628
Recomendado
Clasificación