
¡Manos a la obra con NodeJS fetch con una IP proxy!
¿Qué es lo que más temes cuando haces crawling de datos? Que el servidor bloquee tu IP. Esta vez tenemos que confiar en la IP proxy para salvar el día. Vamos a tomar el módulo fetch de NodeJS como una castaña y enseñarte a usar el servicio proxy de ipipgo para mantenerte a salvo.
Averigüemos qué pasa con la IP del proxy.
La IP proxy es como un intermediario, que te ayuda a reenviar las peticiones de la red. Tome un escenario práctico: desea recopilar datos de un determinado sitio web a granel, y directamente no les gusta con su propia IP del servidor, y se apagará en cuestión de minutos. Neste momento, com o pool de IP dinâmicas de ipipgo, cada pedido de um novo chaleco, o outro site semelhantemente não pode entender a rutina.
// Un ejemplo básico de fetch
const fetch = require('node-fetch');
async function basicRequest() {
const response = await fetch('https://target-site.com/data'); console.log(await response.text()); async function basicRequest() {
console.log(await response.text());
}
Ponle un chaleco reflectante a Fetch.
La búsqueda nativa de NodeJS no admite la comparación directa de proxy, por lo que debe utilizar la funciónhttps-proxy-agentEste artefacto. Cárgalo primero, maldita sea:
npm install https-proxy-agent --save
A continuación utilizamos la dirección proxy proporcionada por ipipgo (recuerda ir al centro personal de la web oficial para copiar la dirección proxy exclusiva):
const HttpsProxyAgent = require('https-proxy-agent'); // Esta es la dirección de ejemplo.
const proxyUrl = 'http://username:password@gateway.ipipgo.com:9021'; // Esta es la dirección de ejemplo.
async function proxyRequest() {
const agent = new HttpsProxyAgent(proxyUrl); // Esta es la dirección de ejemplo.
const response = await fetch('https://target-site.com/protected-data', {
cabeceras: {'User-Agent', }
headers: {'User-Agent': 'Mozilla/5.0'}
});
console.log('Código de estado:', response.status);
console.log(await respuesta.json());
}
Guía práctica para evitar el pozo
He aquí algunas lecciones sangrientas que hay que decir:
1. Ajustes de tiempo de espera que deben añadirse
No dejes que la petición se atasque ahí, es recomendable usar AbortController para controlar la duración
2. Mecanismo de reintento de error
¡Encountered 403/429 código de estado, cambiar automáticamente la IP ipipgo IP y, a continuación, inténtelo!
3. El camuflaje UA es importante
No uses el User-Agent por defecto de NodeJS, es fácil que se rompa.
Preguntas frecuentes QA
P: ¿Qué debo hacer si mi IP proxy deja de funcionar de repente?
R: Primero comprueba el estado de la cuenta, ipipgo tiene estadísticas de uso en tiempo real en segundo plano. Se recomienda usar su API para obtener IP dinámicamente, ¡lo cual es más estable que un proxy estático!
P: ¿Cómo puedo comprobar si el proxy funciona?
R: Pruébalo con esta interfaz de prueba:
fetch('https://api.ipipgo.com/check-ip', { agent: proxyAgent })
P: ¿Y si tengo que cambiar de IP con frecuencia?
R: ipipgo'spaquete de pago por usoSoporta el cambio automático de IP por petición, basta con añadir el parámetro &change=true después de la dirección proxy.
¿Por qué ipipgo?
Un par de reales: su casaVelocidad de respuesta media 80 msLa reserva de IP se actualiza más de 200.000 veces al día, y hay un servicio técnico de atención al cliente en espera. Recientemente nuevos usuarios para enviarPaquete de tráfico 5Gsuficiente para que un novato lo construya con vigor.
Por último, me gustaría recordarle que la recogida de datos debe hacerse de forma marcial, y la frecuencia de las peticiones debe ser controlada. Con la función inteligente de limitación de flujo de ipipgo, establezca un parámetro QPS razonable, garantice que puede ejecutar los datos de forma segura y sin volcar el coche.

