En los últimos días, mientras practicaba rastreadores, encontré un problema.
Obtuve la URL de la imagen de destino del sitio a través del código python,
pero cuando se conservó en el local, ocurrió un error y se informaron todas las imágenes guardadas. un error: archivo dañado
y, coloque la URL de la imagen directamente en el navegador, aparecerá
Acceso denegado Código de error 1020
página,
Al ver esto, es una declaración seria de que su dirección de destino es correcta, pero no obtiene la página que desea. Este es un anti-hotlinking adecuado.
La solución es muy simple headers
, referer
puede resolver el problema con el especificado.
Sin embargo, apareció nuevamente un nuevo problema,
definí dos variables url
y headers
e hice las configuraciones correspondientes, el código
para usar requests
el módulo es el siguiente:
Response=requests.get(url,headers)
Sin embargo, después de ejecutar el código, todavía hay un error de que la imagen anterior no se puede mostrar normalmente y el archivo está dañado. Es
extraño. Está claramente especificado headers
en referer
, pero el anti-hotlinking aún lo limpia.
No pude resolverlo. Busqué en Internet durante más de 10 días, pero no pude encontrar la razón.
Finalmente, le pedí al maestro que resolviera el problema.
Aquí hay un "pequeño anuncio". Mi maestro escribió un módulo falso automático user_agent en la biblioteca pypi hace muchos años, lo que hizo que el código fuera muy conciso, fácil de usar y recomendado para todos.
1, instalación de pip
kuser-agent
2, importaciónkuser_agent
3, cabezas = {'agente de usuario':kuser_agent.get()
}
El código dado por el profesor es el siguiente:
Response=requests.get(url=url,headers=headers)
Así es, la diferencia es que el formato de escritura de los parámetros es diferente,
para luego compararlo con mi código,
Response=requests.get(url,headers)
Por lo tanto, el código futuro debe escribirse de acuerdo con la especificación para evitar errores e interferencias innecesarias.
el 05 de marzo de 2023 domingo,