Cómo evitar tener una tasa limitada ... Error HTML 1015 usando Python

Dec 03 2020

Así que he creado un robot de automatización para hacer algunas cosas por mí en Internet ... Usando Selenium Python ... Después de largas y trepidantes sesiones de codificación ... días y noches de trabajo en este proyecto, finalmente lo he completado ... Solo para ser recibido aleatoriamente con un error 1015 "Tiene una tasa limitada".

Entiendo que esto es para prevenir ataques DDOS. Pero es un gran golpe.

Me he puesto en contacto con el sitio web para resolver el asunto, pero fue en vano. Pero el software de seguridad de terceros que utilizan dice que el sitio web puede otorgar a mi IP la exclusión de la limitación de velocidad.

Así que me preguntaba si hay alguna otra forma de evitar esto ... tal vez desde una perspectiva de codificación ... No creo que cosas como borrar las cookies resuelvan algo ... o lo harán, ya que es mi dirección IP específica la que están bloqueando

Nota: El TofC del sitio web en el que estoy ejecutando mi bot no dice que no pueda usar software de automatización en él ... pero tampoco dice que usted no pueda.

No me importa codificar un poco más para evitar denegaciones de acceso aleatorio. Creo que duran 24 horas, lo que puede ser perjudicial, ya que la etapa final de esta compilación es que mi programa se ejecute diariamente durante largos períodos de tiempo.

¿Crees que podría comunicarme con el tercero de seguridad para pedirle que le pida al sitio web que me otorgue acceso? Ya intenté resolver el asunto con el sitio web. Todo lo que dijeron fue que A. En el lado dice que estoy bien B. El problema probablemente esté en mi lado .. "Tal vez algún software malicioso esté intentando acceder a nuestro sitio web" que .. malicioso no pero un bot sí. Eso es lo que me hizo pensar que tal vez sería mejor si resolvía el asunto yo mismo.

¿Crees que deba implementar tiempos de espera entre procesos o algo así? Estoy atascado.

Gracias por cualquier ayuda. ¡Y es un solo bot!

Respuestas

1 DebanjanB Dec 04 2020 at 07:08

Si te saludan al azar con ...

... implica que el propietario del sitio implementó la limitación de tarifas que afecta el tráfico de visitantes.


razón que limita la tasa

Cloudflare puede limitar el tráfico de visitantes que intenta contrarrestar un posible ataque de diccionario .


umbrales de límite de tasa

En casos genéricos, Cloudflare limita la tasa de visitantes cuando el tráfico de visitantes cruza los umbrales de límite de tasa que se calcula dividiendo las 24 horas de solicitudes de sitios web sin caché por los visitantes únicos durante las mismas 24 horas. Luego, divida por el promedio estimado de minutos de una visita. Finalmente, multiplique por 4 (o más) para establecer un umbral estimado por minuto para su sitio web. Un valor superior a 4 está bien, ya que la mayoría de los ataques están en un orden de magnitud por encima de las tasas de tráfico típicas.


Solución

En estos casos, una posible solución sería utilizar el controlador cromado no detectado para inicializar el contexto de navegación de Chrome .

undetected-chromedriver es un parche optimizado de Selenium Chromedriver que no activa servicios anti-bot como Distill Network / Imperva / DataDome / Botprotect.io. Descarga automáticamente el binario del controlador y lo parchea.

  • Bloque de código:

    import undetected_chromedriver as uc
    from selenium import webdriver
    
    options = webdriver.ChromeOptions() 
    options.add_argument("start-maximized")
    driver = uc.Chrome(options=options)
    driver.get('https://bet365.com')
    

Referencias

Puede encontrar un par de discusiones detalladas relevantes en:

  • La aplicación Selenium redirige a la página de Cloudflare cuando está alojada en Heroku
  • Límite de aceleración de la API de Linkedin
1 hhz Dec 03 2020 at 22:26

Veo algunas posibilidades para ti aquí:

  • Introducir el tiempo de espera entre solicitudes al sitio
  • Reduce las solicitudes que realizas
  • Extienda su bot para detectar cuándo alcanza el límite y cambie su dirección IP (por ejemplo, reiniciando su enrutador)

El último es el menos preferible, supongo, y también el que consume más tiempo.

1 ex-zac-tly Dec 03 2020 at 22:30

Primero: lea los Términos de uso del sitio web, por ejemplo, mire el archivo robots.txt, generalmente se encuentra en la raíz del sitio web como www.google.com/robots.txt . Tenga en cuenta que ir en contra de los términos explícitos del propietario del sitio web puede ser ilegal según la jurisdicción y puede resultar en que el propietario bloquee su herramienta y / o IP.

https://www.robotstxt.org/robotstxt.html

Esto le permitirá saber qué permite explícitamente el propietario del sitio web para la automatización y el raspado.

Una vez que haya revisado los términos del sitio web y comprenda lo que permiten, y que no le respondan, y haya determinado que no está infringiendo los términos de uso del sitio web, la única otra opción real sería utilizar proxies y / o VPS. eso le dará al sistema que ejecuta los scripts diferentes IP.