¿Qué debo usar para hacer un rastreador web distribuido en Python?

LEER POR FAVOR:

Mi objetivo es crear un rastreador distribuido que procese más de 1 sitio web a la vez y más de 1 consulta también. Para esto, he creado un rastreador web en Python usando paquetes estándar como ‘peticiones’ y ‘BeautifulSoup’. Funciona bien. Para distribuirlo, usé rabbitMQ. Me permite acelerar el sistema al tener más de 1 proceso que ayuda al rastreo.

Mi sistema funciona en un modelo de grupo de trabajo: – Tengo un servidor principal que recibe consultas y comienza un nuevo rastreo para cada una de ellas. – Al iniciar el rastreo, se recopilan algunas URL ingresando la consulta en un motor de búsqueda. – De ahora en adelante, el servidor principal envía URL a los trabajadores / procesos disponibles con rabbitMQ y espera recibir más URL de ellos.

Sin embargo, tengo un gran cuello de botella en esta arquitectura, y no es el servidor principal … rabbitMQ no me permite consumir más de 1 mensaje a la vez (¡la función channel.basic_qos () no funciona!). Lo que quería era tener una cola privada para cada consulta (como lo tengo ahora) y poder procesar estas 2 consultas al mismo tiempo, lo más rápido posible. De ese modo, paralelice el código de los trabajadores para que pueda procesar la cantidad máxima de URL, en lugar de 1 url a la vez.

¿Qué debo usar para reemplazar rabbitMQ aquí? Llegué específicamente a los desarrolladores de rabbitMQ y lo que quiero no se puede hacer con él, así que estoy tratando de encontrar un ‘paquete de distribución’ diferente. tal vez Kafka?

El módulo grequests funciona bien para mí,

https://pythonexample.com/code/g

Utilice los servicios de extracción de datos y no pierda su tiempo en averiguar qué hacer y cómo. Este es el que he usado: Datahen: servicios de extracción de datos, rastreo y rastreo web.