Vazamento de memória Dryscrape / webkit_server
Estou usando dryscrape / webkit_server para raspar sites habilitados para javascript.
O uso de memória do processo webkit_server parece aumentar a cada chamada para session.visit (). Isso acontece comigo usando o seguinte 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()
Estou iterando por aprox. 300 urls e após 70-80 urls, o webkit_server ocupa cerca de 3 GB de memória. No entanto, não é realmente a memória que é o problema para mim, mas parece que o dryscrape / webkit_server está ficando mais lento a cada iteração. Após as referidas 70-80 iterações, o dryscrape é tão lento que gera um erro de tempo limite (tempo limite definido = 10 s) e eu preciso anular o script python. Reiniciar o webkit_server (por exemplo, após cada 30 iterações) pode ajudar e esvaziar a memória, no entanto, não tenho certeza se os 'vazamentos de memória' são realmente responsáveis pela raspagem a seco cada vez mais lenta.
Alguém sabe como reiniciar o webkit_server para que eu possa testar isso?
Não encontrei uma solução aceitável para esse problema, mas também não quero mudar para outra solução (selenium / phantomjs, ghost.py), pois simplesmente amo o dryscrape por sua simplicidade. Dryscrape está funcionando muito bem. se não houver iteração em muitos URLs em uma sessão.
Esta questão também é discutida aqui
https://github.com/niklasb/dryscrape/issues/41
e aqui