
Cómo utilizar un proxy IP para obtener datos de Twitter de forma segura
Recientemente, muchos de mis amigos en el mercado extranjero se quejaron conmigo de que el uso de scripts para capturar datos de Twitter daría lugar al bloqueo de IP.ipipgoLa piscina IP dinámica de la única solución completa. Hoy, voy a desglosar mi experiencia del mundo real y asegúrese de que usted puede jugar con la recopilación de datos de Twitter después de leer esto.
¿Por qué su rastreador está siempre bloqueado?
El mecanismo anti rastreo de Twitter es más inteligente que sus propios jefes y se fija en tres métricas principales:
| elemento de control | campo de minas común | método resolver un problema |
|---|---|---|
| Frecuencia de solicitud IP | 10 solicitudes en 1 segundo | Control 5 segundos/tiempos |
| Geolocalización IP | La PI de Pekín barre los tweets de EE.UU. en un frenesí matutino | Uso de IP residencial local |
| Usuario-Agente | Todas las solicitudes se identifican con el mismo navegador | Conmutación aleatoria de modelos de dispositivos |
La agrupación dinámica de IP es la solución
Antes, utilizar una IP proxy fija era como ducharse en un mackintosh: había que mojarse. Entonces cambié aipipgoLa IP dinámica residencial, cada solicitud cambia automáticamente la IP real del usuario. medido 12 horas de captura continua, la tasa de éxito es estable en 98% o más.
importar peticiones
from itertools import ciclo
La dirección del proxy pool proporcionada por ipipgo
pool_proxy = [
'103.21.163.76:8000',
'45.89.123.142:3128', '198.55.112.89:8080', '198.55.112.89:8080'
'198.55.112.89:8080'
]
proxies = cycle(proxy_pool)
para página en rango(1, 100): proxy_actual = siguiente(proxies)
proxy_actual = siguiente(proxies)
proxy_actual = siguiente(proxies)
respuesta = requests.get(
https://api.twitter.com/xxx', proxies={'http': current_proxy}, current_proxy = next(proxies)
proxies={'http': proxy_actual},
tiempo de espera=10
)
Procesando datos...
except Exception as e.
print(f "Cambiando IP para continuar: {current_proxy} arrodillado")
Guía para evitar las trampas (imprescindible para principiantes)
No utilice la IP de un centro de datos.Twitter reconoce ahora segmentos de IP de salas de servidores, y utilizar esas IP equivale a volarse por los aires. Opciones sugeridasipipgoLos paquetes IP residenciales, sus IPs son todas de banda ancha doméstica real, y están probadas personalmente para ser efectivas.
No sea demasiado regular en los intervalos de solicitud, a todos los operadores humanos les tiemblan las manos. Se recomienda utilizar un retardo aleatorio:
importar aleatorio
importar tiempo
Espera aleatoriamente 3-8 segundos
time.sleep(random.randint(3,8))
Botiquín de primeros auxilios QA
P: ¿Por qué me siguen bloqueando con una IP proxy?
R: El 80% de la calidad de la IP no es buena, o la frecuencia de solicitud es demasiado alta. Sustitúyalo poripipgode un grupo de IPs de calidad, al tiempo que aumenta el intervalo de solicitud a 5 segundos o más.
P: ¿Cuántas IP se necesitan para ser suficientes?
R: 50 IPs rotatorias son suficientes si recoges 10.000 datos al día. No seas avaricioso.ipipgoEl paquete básico es perfectamente adecuado para hacer.
P: ¿Qué debo hacer si encuentro un CAPTCHA?
R: Desactiva inmediatamente la IP actual, cambia la nueva IP para reducir la velocidad de cobro. Si realmente no lo consigues, puedes enviarme un mensaje privado para que te haga una operación chabacana de anti-CAPTCHA.
Diga la verdad.
No creas en esos proxys gratuitos, o la velocidad es lenta o el tiempo de supervivencia es corto. Yo use una IP gratuita al principio, pero no consegui muchos datos, pero me implantaron scripts de mineria. Ahora usoipipgoEl paquete mensual, 1G de ancho de banda + IP exclusiva, se convertía en sólo dos dólares al día, mucho más barato que comprar café.

