ChromeDriver verbraucht zu viel Speicher

OP #7489450
Lesenswert?
• ▲
▼

Hi

Ich habe ein Python Programm erstellt, das mittels Chrome Driver eine Website in 5 Sekunden Intervallen aufruft, auf der laufend neue Live Daten verfügbar sind. Die abgefragten Daten werden nach jedem Aufruf in eine csv Datei geschrieben.

Das Programm nimmt zuksessive mehr Speicher in Anspruch und stürzt nach ein paar Tagen ab, da der max. verfügbare Speicher überschritten wird.

Verhindern kann ich das nur, wenn ich im Programm den ChromeDriver zumindest einmal am Tag schließe und wieder starte. Dies möchte ich aber vermeiden, da jedesmal eine Captcha Abfrage nötig ist.

Den ChromeDriver starte ich mit den folgenden Optionen:

1
    options.add_argument("--disable-extensions")
2
    options.add_argument("--disable-images")
3
    options.add_argument("--disable-application-cache")
4
    options.add_argument("--disable-gpu")
5
    options.add_argument("--disk-cache-size=0")
6
    options.add_argument("--incognito")
7
    options.add_argument("--headless")
8
    options.add_argument("--allow-running-insecure-content")
9
    options.add_argument("--ignore-certificate-errors")

hat jemand eine Idee?

#7490000
Lesenswert?
• ▲
▼

Peter G. schrieb:

Ich habe ein Python Programm erstellt, das mittels Chrome Driver eine Website in 5 Sekunden Intervallen aufruft, auf der laufend neue Live Daten verfügbar sind. Die abgefragten Daten werden nach jedem Aufruf in eine csv Datei geschrieben.

Das Programm nimmt zuksessive mehr Speicher in Anspruch und stürzt nach ein paar Tagen ab, da der max. verfügbare Speicher überschritten wird.

Verhindern kann ich das nur, wenn ich im Programm den ChromeDriver zumindest einmal am Tag schließe und wieder starte. Dies möchte ich aber vermeiden, da jedesmal eine Captcha Abfrage nötig ist. [...] hat jemand eine Idee?

Nun, Du willst da automatisiert und obendrein in kurzen Abständen eine Webseite abrufen, deren Betreiber genau das offensichtlich nicht will. Deswegen hat er schließlich die Captcha-Abfrage eingebaut, um haargenau solche Abrufe und damit das Abgreifen seiner Daten zu verhindern. Dazu möchtest Du vielleicht einmal § 202a S. 1 StGB lesen und dabei im Kopf behalten, daß dieses Captcha durchaus als eine Art "Zugangssicherung" angesehen werden kann. Auch das sogenannte Datenbankherstellerrecht aus Abschnitt 6 des UrhG könnte berührt sein. Dies nur vorweg, um zu zeigen, daß Deine Vorgehensweise zumindest nicht besonders fair gegenüber dem Betreiber der Webseite ist, und möglicherweise auch zivil- oder sogar strafrechtliche Konsequenzen haben könnte.

Bezüglich des Speicherleck-Problems ist es leider so, daß ich bislang zumindest keinen für Linux verfügbaren Browser gefunden habe, der keine Speicherlecks hat. Das betrifft wahrscheinlich auch die Webdriver. Wenn Du also keine Lösung findest, das Captcha automatisiert zu lösen, ist Dein Vorhaben wahrscheinlich ohnehin zum Scheitern verurteilt.

Nach meiner Erfahrung bieten die meisten Anbieter von Datensammlungen allerdings eine, wenngleich zumeist kostenpflichtige, API zum Abrufen dieser Daten. Solche APIs haben meistens den Vorteil, daß die Daten wesentlich leichter abgerufen und weiterverarbeitet werden können. Wenn solch ein Webseitenbetreiber keine API anbietet, gibt es in beinahe allen Fällen alternative Anbieter, die das tun.

Nebenbei bemerkt vermute ich, daß Du der etwa Drölfmillionste bist, der Börsendaten abgreifen möchte, um mit allerhand mehr oder weniger klugen Machine- oder DeepLearning-Modellen Vorhersagen zu berechnen und damit möglichst $schnell möglichst $reich zu werden. In diesem Zusammenhang empfehle ich gerne das Buch "Unberechenbar" des Physikers und Comedian Vince Ebert, um zu erkennen, warum daraus nichts wird. Viel Spaß!

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.