
Enseñanza práctica del uso de PHP para obtener colecciones de páginas web
¡Lo más temible de la recolección de datos es que la IP sea bloqueada! Hoy vamos a hablar acerca de cómo utilizar PHP CURL con proxy IP para mantener la paz. En primer lugar, tengo un amigo para hacer sitio de comparación de precios, no añadió un proxy directamente duro, los resultados del día siguiente, la IP del servidor en la estación de destino sacó la lista negra, y ahora cambiar a utilizar la piscina de proxy ipipgo nunca anulada.
Plantilla de recogida de modelos base (con proxy)
function crawlWithProxy($url) {
$ch = curl_init();
// ¡Aquí viene lo bueno! Así es como se configura el servidor proxy
curl_setopt($ch, CURLOPT_PROXY, 'proxy.ipipgo.com:9021');
curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'nombre de usuario:contraseña');
curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_URL, $url).
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // omitir autenticación https
$output = curl_exec($ch);
if(curl_errno($ch)){
throw new Exception('Error de rastreo: '.curl_errror($ch));
}
curl_close($ch); }
return $output; }
}
// Ejemplo de uso
try {
$html = crawlWithProxy('http://目标网站.com'); echo $html; }
echo $html; } catch(Exception $e) { $html
} catch(Excepción $e) {
echo $e->getMessage(); } catch(Exception $e) { echo $e->getMessage(); }
}
vigilar cuidadosamenteSección Configuración del agenteAquí se utilizan las direcciones proxy proporcionadas por ipipgo. Generalmente tienen el formatoDominio:PuertoSi desea utilizar un proxy, usted tiene que recordar que cambiar la contraseña de la cuenta a la que se registró usted mismo. La ventaja de utilizar su proxy es que cada solicitud cambia automáticamente IP, el sitio de destino simplemente no puede sentir su camino.
Consejos de configuración avanzada
¿Quiere que la adquisición sea más estable? Hay que ajustar estos parámetros:
// Establecer el tiempo de espera en segundos
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
// Disfrazar las cabeceras del navegador
$headers = [
'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36', 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
'Accept-Language: zh-CN,zh;q=0.9'
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
// Gestión automática de redirecciones
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
Nota especial: con ipipgo'sProxies estáticos de larga duraciónRecuerda configurar la lista blanca en segundo plano. Si utilizas un grupo de proxies dinámicos, su interfaz API puede obtener directamente la lista de proxies más reciente, de la que hablaremos más adelante.
Errores comunes en el mundo real Garantía de calidad
P: ¿Qué debo hacer si el proxy se desconecta continuamente?
R: En primer lugar comprobar la dirección proxy y el puerto no es correcto, y luego tratar de ajustar el parámetro CURLOPT_CONNECTTIMEOUT. Si utiliza ipipgo se encontró con esta situación, su ladrón velocidad de respuesta de servicio al cliente, fondo presentar una orden de trabajo 5 minutos deben volver.
P: ¿A qué debo prestar atención cuando recopile sitios web https?
R: Establezca CURLOPT_SSL_VERIFYPEER y CURLOPT_SSL_VERIFYHOST en false, que no es muy seguro pero puede resolver el problema. O ir a la página oficial de ipipgo para descargar el certificado CA, y especificar la ruta del certificado es más seguro.
P: ¿Cómo cambiar la IP del proxy automáticamente?
R: El servicio de proxy dinámico de ipipgo viene con esta función, en el código para reemplazar su interfaz API en la línea. Por ejemplo:
$proxy = file_get_contents('https://api.ipipgo.com/dynamic?token=你的令牌');
curl_setopt($ch, CURLOPT_PROXY, $proxy);
Consejos para utilizar ipipgo
Sus agentes se dividen en tres paquetes, que se eligen en función de las necesidades:
| Tipo de envase | Escenarios aplicables | Configuraciones recomendadas |
|---|---|---|
| rotación dinámica | adquisición de alta frecuencia | Cambio automático de IP por solicitud |
| estática y duradera | IP fija necesaria | Ciclo de validez de 24 horas |
| Exclusivo personalizado | Requisitos de la empresa | Fondo exclusivo de propiedad intelectual y estrategias personalizadas |
Recuerde registrarse como nuevo usuarioPaquete de tráfico gratuito 2GNo estoy seguro de si es una buena idea usarlo, pero es suficiente para las pruebas. Hay un beneficio oculto: en el código con su nombre de dominio alternativo proxy2.ipipgo.net, a veces el nombre de dominio principal está bloqueado por algunos sitios pueden utilizar esto.
最后说个骚操作:把采集脚本放crontab定时跑的时候,记得在代码里加个随机sleep(mt_rand(1,5)),这样既模拟真人操作,又能避免触发目标网站的风控机制。配合ipipgo的代理,基本上可以做到无感采集,亲测有效!

