Dryscrape / webkit_server Speicherverlust

Ich verwende dryscrape / webkit_server zum Scrappen von Websites mit aktiviertem JavaScript.

Die Speichernutzung des Prozesses webkit_server scheint mit jedem Aufruf von session.visit () zuzunehmen. Es passiert mir mit dem folgenden Skript:

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()

Ich iteriere über ca. 300 URLs und nach 70-80 URLs belegt webkit_server ca. 3 GB Speicher. Es ist jedoch nicht wirklich der Speicher, der das Problem für mich ist, aber es scheint, dass dryscrape / webkit_server mit jeder Iteration langsamer wird. Nach den genannten 70-80 Iterationen ist Dryscrape so langsam, dass es einen Timeout-Fehler auslöst (Timeout = 10 Sek. Einstellen) und ich das Python-Skript abbrechen muss. Ein Neustart des webkit_servers (z. B. nach jeweils 30 Iterationen) könnte helfen und würde den Speicher leeren. Ich bin mir jedoch nicht sicher, ob die "Speicherlecks" wirklich dafür verantwortlich sind, dass trockenes Scrape immer langsamer wird.

Weiß jemand, wie man den webkit_server neu startet, damit ich das testen kann?

Ich habe keine akzeptable Lösung für dieses Problem gefunden, möchte aber auch nicht auf eine andere Lösung (Selen / Phantomjs, ghost.py) umsteigen, da ich Dry Scrape wegen seiner Einfachheit einfach liebe. Dryscrape funktioniert übrigens super. Wenn in einer Sitzung nicht zu viele URLs durchlaufen werden.

Dieses Problem wird auch hier besprochen

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

und hie

Webkit_server (von Pythons Dryscrape aufgerufen) belegt mit jeder besuchten Seite immer mehr Speicher. Wie reduziere ich den verwendeten Speicher?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage