Red de conocimiento informático - Material del sitio web - Cómo utilizar Python para resolver problemas de rastreo de sitios web

Cómo utilizar Python para resolver problemas de rastreo de sitios web

1. El anti-rastreo a partir de los encabezados solicitados por el usuario es la estrategia anti-rastreo más común.

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