¿Cuando los rastreadores atacan el bloqueo de IP? Prueba este truco Jedi
¿Qué es lo que más miedo te da de hacer crawler? No es el mecanismo anti-rastreo, no es el CAPTCHA, lo peor es la aparición repentina delAlerta de bloqueo de IP¡Tengo un amigo que hace la comparación de comercio electrónico! Tengo un amigo para hacer la comparación de comercio electrónico, durante tres días consecutivos por una plataforma bloqueada más de veinte IP, ansioso por espigar pelo. Más tarde se utiliza un truco - proxy de rotación de IP, difícil de bajar los datos.
importar peticiones
from itertools import ciclo
ip_pool = [
'124.124.124.124:9999', ...
... Más IPs proxy proporcionadas por ipipgo
]
proxy_cycler = ciclo(ip_pool)
para página en rango(1, 101): proxy_actual = siguiente(proxy_ciclador)
proxy_actual = siguiente(proxy_cycler)
proxies = {
'http': f'http://{proxy_actual}',
https': f'https://{proxy_actual}'
}
response = requests.get(url, proxies=proxies)
Procesamiento de los datos JSON devueltos...
La forma correcta de abrir una IP proxy
Un error que suelen cometer muchos novatos esPiensa en el agente como en una llave maestra.. Aquí hay un truco para los chicos:La calidad de la PI prima sobre la cantidadNo estoy seguro de poder hacerlo. He usado proxies gratuitos antes, y nueve de cada diez IPs se desconectaron, y la restante fue bloqueada por el sitio de destino.
Recomendado para ipipgoAgentes Residenciales DinámicosLa reserva de IP se actualiza todos los días, y la tasa de éxito medida puede llegar a 95% y más. La clave está en aprenderEstrategia de conmutación inteligenteNo seas estúpido y cambies las IPs para cada petición, tienes que ajustarte dinámicamente según el código de estado de la respuesta.
Los tres misterios principales del tratamiento de datos JSON
No se apresure a analizar los datos cuando los reciba, pero fíjese primero en estos tres lugares:
- ¿El tipo de contenido de la cabecera de respuesta es application/json?
- Si los datos han sido comprimidos con gzip o no (me encontré con un problema que devolvía un código confuso).
- ¿Se codifican dinámicamente los campos clave (por ejemplo, el precio se codifica en Base64)?
importar json
from json.decoder import JSONDecodeError
try: datos = respuesta.json()
datos = response.json()
except JSONDecodeError:
Manejo de excepciones
if 'gzip' in response.headers.get('Content-Encoding',''):: data = json.loads(response.content.decode('utf-8'))
datos = json.loads(response.content.decode('utf-8'))
Problemas en el campo
Cuente un caso real: se detectará el anti-crawl de un sitio de viajesLocalización geográfica del PI. Utilizar ipipgo'sAgentes de localización a nivel de ciudadAl cotejar la IP de la solicitud con el ID de la ciudad en el parámetro de solicitud, el porcentaje de éxito se dispara directamente de 40% a 90%.
toma | Tipo de agente recomendado | Frecuencia de conmutación |
---|---|---|
Adquisición general de datos | Agentes de centros de datos | Cada 5 minutos |
Página web de Alta Defensa | Agentes dinámicos residenciales | A petición |
Directrices sobre desminado de problemas comunes
P: ¿Las IP proxy no funcionan cuando las utilizo?
R: El 80% de ellos utilizan proxies inferiores, elija el de ipipgoValidación en tiempo real de los grupos de agentesLa actividad IP se detecta automáticamente antes de cada solicitud.
P: ¿Los datos devueltos están siempre incompletos?
R: Compruebe el Accept-Encoding en la cabecera de la solicitud, algunos sitios web devolverán datos de formato diferente según esto.
P: ¿Los agentes son lentos hasta el escepticismo?
R: ¡No utilice proxies gratuitos! ipipgo'sAcceso exclusivo de alta velocidadLatencia medida en 200 ms
Un último consejo: ser rastreador es como librar una guerra de guerrillas.No lo hagas.Tienes que ser inteligente. Razonable con la IP del proxy y la estrategia de solicitud, con el sistema de programación inteligente de ipipgo, usted encontrará que muchos aparentemente pared de ladrillo sitio web, de hecho, la vulnerabilidad es más que un colador....