Ich PhantomJS im Remote-Modus mit WebDriver phantomjs --webdriver 8910
ausgeführt wird und dann viele Seiten mit der Selenium Python-Anbindung mit so etwas wie immer:Limit Speicherverbrauch von Phantomjs mit Selen-Webdriver?
wd = webdriver.PhantomJS(port=8910)
for url in big_url_list:
wd.get(url)
# do something here, e.g. wd.save_screenshot or print wd.page_source
wd.quit()
Die wd.quit()
scheint nichts zu tun. Die Überwachung des Prozesses mit dem oberen Rand zeigt, dass die Speicherauslastung des phantomjs-Prozesses weiter ansteigt, je mehr Seiten abgerufen werden. Wenn ich den phantomjs-Prozess neu starte, sinkt die Speicherauslastung und beginnt wieder stetig zu steigen.
Die close method mentioned in the phantomjs docs klingt vielversprechend, aber ich sehe keine Möglichkeit, das über die WebDriver protocol zu nennen.
Gibt es (i) eine Möglichkeit, die Speicherauslastung von phantomjs bei vielen Anfragen gering zu halten, oder (ii) eine zuverlässige Methode, den phantomjs-Prozess zu überwachen und regelmäßig neu zu starten, damit der Speicher nicht außer Kontrolle gerät?