Cómo utilizar Python para resolver problemas de rastreo de sitios web
Encabezado disfrazado. Muchos sitios web detectarán el agente de usuario de los encabezados y algunos sitios web detectarán el referente (el método anti-hotlinking de algunos sitios web de recursos es detectar el referente). Si encuentra este mecanismo anti-rastreador, puede agregar encabezados directamente al rastreador y copiar el agente de usuario del navegador a los encabezados del rastreador o modificar el valor del referente al nombre de dominio del sitio web de destino [Nota: a menudo se ignora fácilmente; Capture el paquete solicitado y analícelo. Después de determinar el Referer, simule el encabezado de la solicitud de acceso en el programa y agréguelo]. Para los anti-rastreadores que detectan encabezados, se pueden omitir fácilmente cuando el rastreador modifica o agrega encabezados.
2. Anti-crawler basado en el comportamiento del usuario
También hay algunos sitios web que detectan el comportamiento del usuario, como que una misma IP visite la misma página varias veces en un corto período de tiempo. , o la misma cuenta en un corto período de tiempo Realice la misma operación varias veces dentro de un período de tiempo determinado. [Este tipo de anti-rastreador necesita tener suficiente IP para manejarlo]
(1) La mayoría de los sitios web se encuentran en la primera situación. Para esta situación, usar un proxy de IP puede resolverlo. Puede escribir un rastreador especial para rastrear las IP de proxy públicas en Internet y guardarlas todas después de la detección. Una vez que tenga una gran cantidad de IP de proxy, puede cambiar varias IP para cada solicitud. Esto es fácil de hacer en solicitudes o urllib, de modo que pueda omitir fácilmente el primer anti-rastreador.
Escribir un agente rastreador:
Pasos:
1 El parámetro es un diccionario {'Tipo': 'IP del agente: Número de puerto'}
proxy_support=urllib.request.ProxyHandler({})
2. Personaliza, crea un abridor
opener=urllib.request.build_opener(proxy_support)
3a. Instale el abridor
urllib.request.install_opener(opener)
3b Llame al abridor
opener.open(url)
Utilice una gran cantidad de servidores proxy para solicitar aleatoriamente al sitio web de destino que se ocupe de los anti-rastreadores