Forum: Mikrocontroller und Digitale Elektronik ChromeDriver verbraucht zu viel Speicher


von Peter G. (peterdergrosse)


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?

von Lukey S. (lukey3332)


Lesenswert?

Incognito deaktivieren, dann kannst du neustarten ohne die Captcha 
Abfrage?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Peter G. schrieb:
> zuksessive
Schreib statt dem Fremdwort "sukzessive" einfach "nach und nach"...

von Rainer W. (rawi)


Lesenswert?

Peter G. schrieb:
> Das Programm nimmt zuksessive mehr Speicher in Anspruch ...

Das nennt sich wohl "Speicherleck" - finde die Ursache und beseitige 
sie, statt gegen die Symptome anzukämpfen.

Auf welchem Controller bist du denn zu Gange und wieviel Speicher geht 
dir pro Tag verloren?

: Bearbeitet durch User
von Ein T. (ein_typ)


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ß!

von Mario M. (thelonging)


Lesenswert?


von Stefan F. (Gast)


Lesenswert?

Chromedriver steuer einen Chrome Browser an. Aber ich kenne keinen 
Mikrocontroller, der einen Chrome Browser ausführen kann.

Wie sieht dein Setup aus?

von Rüdiger B. (rbruns)


Lesenswert?

wget ? ne Mist der löst das Capatcha ja nicht.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.