
En primer lugar, ¿por qué hay que usar Go para conseguir rastreadores?
Nueve de cada diez personas que trabajan con rastreadores en estos días están usando Python, pero los veteranos saben que la cosa Go nació para hacer esto. Mira esto.concurrenteLa librería net/http de Go es una gran forma de sacar el máximo partido a tu lenguaje, con cientos de hilos y menos memoria. Especialmente cuando necesitas hacer muchas peticiones, las librerías net/http de Go son una gran manera de deshacerte de otros lenguajes.
Sin embargo, hay que tener en cuenta que muchos sitios webBloqueo de direcciones IPLo primero que tienes que hacer es obtener un 403 forbidden. Has estado escribiendo código durante medio día, y entonces obtienes un 403 forbidden justo después de diez minutos de ejecución, que es algo que estallará en la mente de cualquiera. Este es el momento de sacar nuestra arma secreta - el servicio de IP proxy de ipipgo.
// Por ejemplo, configurar un proxy con Go es tan sencillo como esto
cliente := &http.Cliente{
Transporte: &http.Transporte{
Proxy: http.ProxyURL(&url.URL{
Esquema: "http",
Host: "your-account:password@proxy.ipipgo.io:9021",
}),
},
Tiempo de espera: 30 tiempo.
Segundo, }
En segundo lugar, ¿cómo se convirtió la IP proxy en un salvavidas?
Recientemente, he ayudado a un amigo para conseguir un rastreador de comparación de precios, y el sitio de destino es tan estricto en anti-escalada que me está matando. Al principio, he utilizado la IP local duro justo, el resultado es de media hora para ser bloqueado. Más tarde cambió a proxy dinámico residencial de ipipgo, buen tipo, corrió durante dos días consecutivos están bien.
| Tipo de agente | porcentaje de éxito | tempo |
|---|---|---|
| Agentes de centros de datos | 85% | afilado (de cuchillos o ingenio) |
| Agente residencial (recomendado) | 98% | moderado |
El grupo de proxies de ipipgo es lo suficientemente grande, especialmente con suConmutación inteligente de rutasFunción, seleccionar automáticamente el nodo más rápido para usted. Recuerdo la última vez que hice la recopilación de datos de comercio electrónico, utilizando su API cada 5 minutos para cambiar la IP, los datos agarró que llamó a un suave.
En tercer lugar, la mano para enseñar a que coincida con el agente
Aquí va un truco para los novatos, no utilices directamente el http.Get por defecto, con una instancia de Cliente es la forma correcta. El siguiente código que copiar directamente la tarea en la línea:
func createProxyClient(proxyURL cadena) (http.Cliente, error) {
proxy, err := url.Parse(proxyURL)
¡si err ! = nil {
return nil, err
}
return &http.Cliente{
Transporte: &http.Transporte{
Proxy: http.ProxyURL(proxy),
TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, // omitir la verificación del certificado
}, // Omitir validación de certificado.
Tiempo de espera: 20 time.
Segundo, }, nil
}
Recuerde sustituir el proxyURL por la dirección que le ha proporcionado ipipgo en el formato dehttp://用户名:密码@DirecciónGateway:PuertoSi tienes un problema con el certificado, puedes omitirlo temporalmente como arriba. Si tienes un problema con el certificado, puedes saltarte temporalmente la validación como arriba, pero es mejor tener un certificado adecuado para el entorno oficial.
IV. Registro de escollos reales
La última vez que utilicé Go para subir a un sitio web de viajes, el proxy estaba configurado correctamente, pero no pude conectarme. Más tarde descubrí que eragrupo de conexionesNo estaba emparejado correctamente y el Keep-Alive por defecto estaba ocupando la conexión. La solución fue añadir dos líneas a Transport:
Transporte: &http.Transport{
MaxIdleConns: 100,
IdleConnTimeout: 90 tiempo.
TLSHandshakeTimeout: 10 time.
Second, TLSHandshakeTimeout: 10 time.Second, }
También hay un mal más, con el acceso proxy ipipgo es siempre el tiempo de espera. Más tarde se encontró que el nodo por defecto de su casa es el protocolo HTTP, el sitio de destino se ve obligado a HTTPS. cambiar para apoyar paquete proxy HTTPS resuelto inmediatamente.
V. Preguntas frecuentes QA
P: ¿Qué debo hacer si no puedo conectarme siempre a la IP proxy?
R: Primero compruebe que la contraseña de la cuenta no es correcta, especialmente los símbolos especiales para usar el código URL. A continuación, intente probar directamente con el comando curl, si no funciona rápidamente en contacto con el servicio al cliente ipipgo para cambiar el nodo.
P: ¿Qué es eso de arrastrarse y bloquearse de repente?
R: 80% de la frecuencia de solicitud es demasiado alto, incluso si el cambio de IP tiene que controlar el ritmo. Sugerido en el código para agregar un retardo aleatorio, con time.Sleep con rand.Intn para obtener un poco de aleatoriedad.
P: ¿En qué es ipipgo mejor que otros?
R: Aparte de eso, hay dos cosas bastante difíciles: unaVivienda en la vida real PIEn segundo lugar, el desarrollo exclusivo de enrutamiento inteligente, evitando automáticamente el ASN de la prohibición.
Sexto, di algo sincero
En el negocio de los rastreadores, la técnica es sólo lo básico.Los recursos mandan.. He visto a demasiada gente construir sus propios servidores proxy, y los costes de mantenimiento resultantes son espantosamente altos. Mejor utilizar un servicio profesional como ipipgo, ahorrar tiempo para escribir unos cuantos rastreadores más no huele bien...
Por último, un recordatorio para los novatos: no se limiten a rastrear los datos.Protocolo de robotsEs importante. Algunos sitios explícitamente no permiten la escalada, no obligamos, después de todo, no hacer el proyecto con el fin de comer abogados carta, ¿verdad?

