Sin IP proxy, el trabajo con crawlers será difícil, por lo que muchos ingenieros de crawlers necesitan comprar IPs proxy eficientes y estables. Con una IP proxy de alta calidad, ¿puedes relajarte y sentarte? Las cosas no son tan simples, y también es necesario optimizar el esquema, asignar recursos de forma racional, mejorar la eficiencia del trabajo y realizar el trabajo con crawler de forma más eficiente, rápida y estable.
Opción 1: Cada proceso selecciona aleatoriamente una lista de IPs de la API de la interfaz (por ejemplo, extrayendo 100 IPs a la vez) para que las recorra, y luego llama a la API para obtenerlas si falla, y la lógica general es la siguiente:
1. Cada proceso (o hilo) recupera aleatoriamente un lote de IPs de la interfaz e intenta recuperar datos de la lista de IPs en un bucle.
2. Si el acceso tiene éxito, sigue cogiendo el siguiente.
3. Si falla (como por timeout, código de verificación, etc.), toma un lote de IPs de la interfaz y sigue intentándolo.
Desventajas de la solución: Cada IP tiene una fecha de caducidad; si se extraen 100, cuando se usa la décima, la mayoría de estas últimas pueden ser inválidas. Si configuras una solicitud HTTP con un tiempo de espera de conexión de 3 segundos y un tiempo de lectura de 5 segundos, puedes perder entre 3 y 8 segundos de tiempo, y quizá esos 3-8 segundos puedan ser aprovechados decenas de veces.
Opción 2: Cada proceso toma una IP aleatoria de la API de la interfaz para usarla, y luego llama a la API para obtener una IP si falla; la lógica general es la siguiente:
1. Cada proceso (o hilo) recupera aleatoriamente una IP de la interfaz y utiliza esta IP para acceder a recursos.
2. Si el acceso tiene éxito, sigue cogiendo el siguiente.
3. Si falla (como por timeout, código de verificación, etc.), selecciona aleatoriamente una IP de la interfaz y sigue intentándolo.
Desventajas: Llamar a APIs para obtener direcciones IP es muy frecuente, lo que ejerce una gran presión sobre el servidor proxy, afecta la estabilidad de la interfaz de la API y puede verse restringido para la extracción. Este esquema tampoco es adecuado y no puede operarse de manera sostenible y estable.
Opción 3: Primero, extraer un gran número de IPs e importarlas a la base de datos local, y luego tomar la IP de la base de datos, la lógica general es la siguiente:
1. Crear una tabla en la base de datos, escribir un script de importación, solicitar la API por minuto (consultar las sugerencias del proveedor de servicios IP proxy) e importar la lista de IP a la base de datos.
2. Registrar la hora de importación, IP, puerto, tiempo de caducidad, estado de disponibilidad de IP y otros campos en la base de datos;
3. Escribe un script grab, el script crab lee la IP disponible de la base de datos y cada proceso obtiene una IP de la base de datos para su uso.
4. Realizar rastreo, juzgar los resultados, procesar cookies, etc., siempre que haya un código de verificación o fallo, renunciar a esa IP y cambiar a una nueva.
Esta solución evita eficazmente el consumo de recursos del servidor proxy, asigna eficazmente el uso de la IP proxy, es más eficiente y estable, y garantiza la durabilidad y estabilidad del trabajo en crawler. |