
¿Por qué se bloquean siempre los rastreadores de Ruby? Prueba esto
Recientemente, una gran cantidad de pequeños socios en el uso de Ruby para escribir un rastreador se han encontrado con un dolor de cabeza - el sitio de destino no se mueve en el bloqueo de la IP, que también plantó el año pasado, cuando tres días seguidos para escribir el script de rastreo no se puede ejecutar, tan enojado que casi me rompió el teclado. Más tarde se encontró queEl problema es que la IP se reconoce como tráfico de máquinas.. Igual que cuando vas al supermercado y compras siempre el mismo tipo de fideos instantáneos, la cajera puede recordar tu cara, el servidor web no es vegetariano.
Scripts Ruby en Cloak and Dagger
La clave para no quedar atrapado con un rastreador es aprender alit. chaleco giratorioLo primero que tienes que hacer es conseguir una nueva dirección IP, y luego tienes que cambiarla. Los chalecos mencionados aquí son IPs proxy, es como cambiarse de ropa y ponerse una peluca cada vez que vas al supermercado. Toma como castaña el servicio de ipipgo, tienen un pool de IPs residenciales enorme, con un smooth especial:
require 'net/http'
proxy_addr = 'gateway.ipipgo.com'
puerto_proxy = 9021
uri = URI('http://目标网站.com')
Net::HTTP.start(uri.host, uri.port, proxy_addr, proxy_port) do |http|
response = http.get(uri.path)
puts respuesta.cuerpo
end
Observe en el código quedirección_proxyresponder cantandopuerto_proxyEstos dos parámetros, este es nuestro stealth props. El servidor proxy de ipipgo soporta una variedad de métodos de autenticación, recomendamos usar suNombre de usuario+contraseña IP de enlaceEl modelo es mucho menos problemático que los que requieren CAPTCHA dinámicos.
Guía práctica para evitar el pozo
No basta con poder utilizar proxies, he aquí algunos baches en los que me he metido:
| fenómeno problemático | método resolver un problema |
|---|---|
| De repente devuelve un error 403 | Cambia la IP del proxy inmediatamente, establece 5-10 minutos para cambiar automáticamente |
| Conexión interrumpida sin respuesta | Compruebe si la dirección del servidor proxy está mal rellenada, ipipgo tiene una lista en tiempo real de los nodos disponibles en segundo plano. |
| Captura de datos incompleta | Añadir características del navegador en la cabecera de la solicitud, como la rotación aleatoria de User-Agent. |
Lo más importante que hay que recordar sobre User-Agent es que no se debe usar el que viene por defecto en Ruby para ahorrar tiempo. Se recomienda hacer un array de docenas de identificadores comunes de navegador, y seleccionar aleatoriamente uno para cada petición.
Consejos para el mantenimiento de las orugas
Tener reptiles es como tener un animal de compañía: hay que alimentarlos y mantenerlos con regularidad:
- Compruebe la tasa de disponibilidad de IP todos los días, ipipgo fondo puede ver la tasa de éxito de cada IP
- Establezca una política de conmutación inteligente para cambiar automáticamente de IP cuando se produzcan 3 fallos consecutivos.
- Ejecutar tareas de gran volumen de datos de 2 a 5 de la madrugada, cuando los mecanismos de defensa del sitio son más laxos.
Una vez que estaba perezoso medio mes sin mantenimiento, los resultados de un día de repente se encontró que la eficiencia de la oruga hacia abajo 70%. más tarde se encontró que el sitio de destino actualizado estrategia anti-escalada, el ajuste oportuno del intervalo de solicitud para salvar de nuevo.
Preguntas frecuentes QA
P: ¿Funcionan los proxies gratuitos?
R: ¡Nunca! Intenté usar proxies gratuitos el año pasado y 8 de cada 10 no funcionaban y me encontré con proxies de phishing. Luego cambié al servicio de pago de ipipgo y la estabilidad subió tres escalones.
P: ¿Tengo que cambiar la IP del proxy con frecuencia?
R: Depende del escenario de negocio. Si se trata de un cobro de alta frecuencia, se recomienda cambiar de IP para cada solicitud. El pool dinámico de ipipgo tiene millones de IP de volumen, lo cual es completamente suficiente.
P: ¿Qué debo hacer si encuentro un sitio web que me pide un código de verificación?
R: En este caso, simplemente cambiar la IP puede no ser suficiente, tiene que cooperar con el control de la frecuencia de solicitud. Establecer el intervalo de solicitud al azar en 3-8 segundos puede reducir eficazmente la probabilidad de activar CAPTCHA.
Como última advertencia, es importante ser un buen rastreador.Desarrollo sostenibleLo primero que hice fue utilizar el servicio de proxy de ipipgo + estrategia de programación inteligente. El mes pasado para ayudar a la empresa de un amigo afinar sistema de rastreo, con el servicio de proxy de ipipgo + estrategia de programación inteligente, funcionamiento continuo y estable de 28 días sin ser bloqueado, la colección de la eficiencia también se mejora por 40%. esta cosa con la guerra de guerrillas, como, flexible y cambiante es el rey.

