Ich verwende den Selenium PhantomJS-Webdriver in einer Sellerie-Warteschlange mit zwei gleichzeitigen Arbeitern.Zu viele PhantomJS-Prozesse
Während ich nur zwei gleichzeitige Arbeiter habe, bekomme ich im Aktivitätsmonitor oft 50 PhantomJS-Prozesse mit einem riesigen Speicherbedarf. Diese Prozesse scheinen nicht richtig zu schließen, selbst wenn ich die Methode driver.quit()
anrufe.
Mein Code sieht wie folgt aus:
class Scrape:
def __init__(self):
self.driver = webdriver.PhantomJS()
self.driver.implicitly_wait(10)
self.driver.set_window_size(1280, 800)
def __enter__(self):
return self
def __exit__(self, exc_type, exc_value, traceback):
self.driver.quit()
Ich verwende dies mit der with
Anweisung ordnungsgemäße Bereinigung zu gewährleisten. Aber es scheint nicht zu funktionieren. Irgendwelche Ideen, wie man das verbessert?
hast du das gesehen: https://github.com/detro/ghostdriver/issues/162, und zwar die letzten 2 Kommentare: "Dieses Problem wird auftreten, wenn phantomjs mit npm installiert wird", also schlagen sie vor, es mit etwas zu installieren sonst (apt-get/homebrew) –
@KirilS. Vielleicht möchten Sie das als Antwort schreiben, da das Problem tatsächlich gelöst wurde! Vielen Dank! – Ben
sicher, tat. Froh, dass es geholfen hat –