Pérdida de memoria Dryscrape / webkit_server

Estoy usando dryscrape / webkit_server para raspar sitios web habilitados para javascript.

El uso de memoria del proceso webkit_server parece aumentar con cada llamada a session.visit (). Me pasa usando el siguiente script:

import dryscrape

for url in urls: 
    session = dryscrape.Session()
    session.set_timeout(10)
    session.set_attribute('auto_load_images', False)
    session.visit(url)
    response = session.body()

Estoy iterando sobre aprox. 300 urls y después de 70-80 urls webkit_server ocupa aproximadamente 3 GB de memoria. Sin embargo, no es realmente la memoria el problema para mí, pero parece que dryscrape / webkit_server se está volviendo más lento con cada iteración. Después de dichas iteraciones 70-80, dryscrape es tan lento que genera un error de tiempo de espera (establecer tiempo de espera = 10 segundos) y necesito abortar el script de Python. Reiniciar el webkit_server (por ejemplo, después de cada 30 iteraciones) podría ayudar y vaciar la memoria, sin embargo, no estoy seguro de si las 'pérdidas de memoria' son realmente responsables de que el raspado en seco se vuelva más y más lento.

¿Alguien sabe cómo reiniciar el webkit_server para que pueda probar eso?

No he encontrado una solución aceptable para este problema, sin embargo, tampoco quiero cambiar a otra solución (selenium / phantomjs, ghost.py) ya que simplemente me encanta dryscrape por su simplicidad. Dryscrape está funcionando muy bien por cierto. si uno no está iterando sobre demasiadas URL en una sesión.

Este tema también se discute aquí

https://github.com/niklasb/dryscrape/issues/41

y aquí

Webkit_server (llamado desde dryscrape de python) usa cada vez más memoria con cada página visitada. ¿Cómo reduzco la memoria utilizada?

Respuestas a la pregunta(3)

Su respuesta a la pregunta