es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo detener el proceso de BeautifulSoup en AWS EC2 antes de que sea eliminado?

Quiero ejecutar un proceso de Python que involucre web scraping usando beautifulsoup 24/7 en algunos sitios web .org. Funciona sin problemas en la mayoría de los sitios web, sin embargo, para algunas excepciones raras, hay un pico en la red, como se puede ver en la imagen a continuación.
El proceso de Python (no la instancia) se cierra.

Al hacer scraping, evito cualquier .pdf o .jpg … para que el uso de la CPU nunca supere el 15% (hasta ahora, no hay problemas)

Imagen: https://i.stack.imgur.com/XskX5.png

Idealmente, necesitaría un script que reinicie el proceso cuando se cierre, pero me han dicho que no es posible (a menos que alguno de ustedes me sugiera otra cosa, tal vez un servicio de AWS que pueda configurar para reiniciar un proceso cuando se cierre).

¿Hay alguna manera de limitar la capacidad de red de beautifoulsoup y detener el scraping de ese enlace en particular antes de que alcance un pico de red?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como experto en IT especializado en Python y Amazon Web Services (AWS), sugiero utilizar AWS EC2 (Elastic Compute Cloud) para ejecutar este proceso Python. EC2 proporciona capacidad de cómputo escalable en la nube y puede reemplazar automáticamente las instancias que fallan o se vuelven no saludables.

    Para limitar la capacidad de red de beautifulsoup y evitar picos de red, puede utilizar el parámetro de tiempo de espera al abrir una URL utilizando la biblioteca requests y omitir las URL que superen cierto umbral de tiempo de espera. Además, también puede utilizar técnicas de limitación de velocidad para limitar el número de solicitudes por unidad de tiempo.

    Alternativamente, también puede utilizar AWS Lambda para ejecutar el script Python que implica web scraping con beautifulsoup. AWS Lambda proporciona capacidad de cómputo sin servidor en la nube y maneja automáticamente la escalabilidad, parcheo y administración de la infraestructura.

    En ambos casos, puede configurar alarmas de CloudWatch para controlar la salud de las instancias y tomar acciones automatizadas si el proceso se detiene o si la instancia se vuelve no saludable. En general, AWS proporciona muchos servicios y herramientas que se pueden utilizar para garantizar el funcionamiento fluido de su proceso Python de web scraping las 24 horas del día, los 7 días de la semana.

Comments are closed.