Seite 1 von 1

Selenium in Python - Die Website blockiert mich, was kann ich tun?

Verfasst: Sonntag 24. Juli 2022, 16:21
von Kreuzzes
Hey,

Ich versuche seit einiger Zeit das Ausfüllen von HTML Forms auf einer bestimmten website zu automatisieren, dafür ist mir nach einiger Zeit Selenium empfohlen worden, was auch richti gut klappt,
leider scheint die Website zu realisieren, dass ich Selenium verwende und blockiert mich deswegen offensichtlich beim Login. Was kann ich tun, damit ich entweder mit Selenium nicht mehr von einem normalen User unterschieden werden kann oder mit einer anderen lib sowas zu realisieren? Ich habs bereits mit der pyautogui probiert, aber das ist auf dauer recht Mühsam und wenn sich auch nur 1 Sache am Design ändert
hängt sich natürlich das ganze Script auf und baut mist.
Falls relevant, ich verwende den Chromium Driver und treffe keine voreinstellungen (sofern es welche gibt) außer Maximieren des Fensters.

Code: Alles auswählen

 driver = webdriver.Chrome(executable_path='/usr/bin/chromedriver')
    driver.maximize_window()
    driver.get(url)
LG und vielen Dank bereits im vorhinein an alle die helfen.

Re: Selenium in Python - Die Website blockiert mich, was kann ich tun?

Verfasst: Sonntag 24. Juli 2022, 18:55
von sparrow
Das lässt sich nicht pauschal beantworten.
Es gibt Mechanismen, die das Scrapen und automatische Bedienen von Webseiten verhindern. Die müsste man nach und nach ausschließen.
Und dann gibt es natürlich auch welche, die lassen sich gar nicht umgehen ;)

Re: Selenium in Python - Die Website blockiert mich, was kann ich tun?

Verfasst: Sonntag 24. Juli 2022, 20:45
von noisefloor
Hallo,

wie oft und mit welcher Frequenz hast du das denn gemacht? Wenn du bzw. dein Skript das schneller macht, als ein Mensch das "zu Fuss" macht, dann gibt es durchaus Webseiten, die das checken. Webscraping ist halt nicht die feine Art und wird auf einigen / vielen Seiten nicht gerne gesehen und unterbunden.

Hat die Webseite bzw. der Dienst keine API, die du nutzen kannst?

Gruß, noisefloor

Re: Selenium in Python - Die Website blockiert mich, was kann ich tun?

Verfasst: Montag 25. Juli 2022, 15:45
von Kreuzzes
noisefloor hat geschrieben: Sonntag 24. Juli 2022, 20:45 wie oft und mit welcher Frequenz hast du das denn gemacht? Wenn du bzw. dein Skript das schneller macht, als ein Mensch das "zu Fuss" macht, dann gibt es durchaus Webseiten, die das checken. Webscraping ist halt nicht die feine Art und wird auf einigen / vielen Seiten nicht gerne gesehen und unterbunden.

Hat die Webseite bzw. der Dienst keine API, die du nutzen kannst?
Hey,
Danke für deine Antwort. Ich greife darauf mit relativ niedriger Frequenz zu, also alle 5 minuten 1x weil eh nur Testläufe grad sind also rein von dem her sollte es gehen. Wenn ich zu oft zugreife komme ich eh ins "rate-limit" rein und dann reagiert die Website anders als bei aktueller Problemstellung. Ich hab das Script auch ziemlich ausgebremst so dass es nicht schneller ist als wenn ein Mensch das selber machen würde, also rein vom Delay her sollte es nicht zu "krass" sein. Das ganze wird wohl schon beim Aufruf der Startseite detected. Das Webscraping ned die feine Art ist stimmt, aber es gibt keine API und nachdem es darum geht was zu kaufen wäre das sowieso eher Kritisch. Es geht garnicht um die Schnelligkeit allgemein sondern dass ich mit Software das mit verschiedenen Konten öfters machen kann und somit die Gesamte Chance erhöhen kann. Würde ich von Hand 20x teilnehmen müssen wäre ich natürlich langsamer, kann ich aber automatisch innerhalb von 5 Minuten 20x teilnehmen ist das viel schneller insgesamt.
LG

Re: Selenium in Python - Die Website blockiert mich, was kann ich tun?

Verfasst: Montag 25. Juli 2022, 15:47
von Kreuzzes
sparrow hat geschrieben: Sonntag 24. Juli 2022, 18:55 Das lässt sich nicht pauschal beantworten.
Es gibt Mechanismen, die das Scrapen und automatische Bedienen von Webseiten verhindern. Die müsste man nach und nach ausschließen.
Und dann gibt es natürlich auch welche, die lassen sich gar nicht umgehen ;)
Hmm.. Also ich hab jetzt auch schon einiges ausprobiert und geändert, user agent erstezt und den webdriver auf undefined, automationextension deaktiviert und so, aber das hat leider nichts gebracht.
Was kann denn da üblicherweise dran schuld sein? Ich könnte natürlich irgendwie probieren mit Wireshark oder so die Requests von Hand vs. von Selenium vergleichen, aber die Abweichungen könnte ich vermutlich sowieso kaum "ausbessern" weil man Selenium dafür wohl modifizieren müsste denke ich.

Re: Selenium in Python - Die Website blockiert mich, was kann ich tun?

Verfasst: Montag 25. Juli 2022, 16:25
von __deets__
Wenn die Seite das Verhaltensgesteuert macht, dann wird's schwierig. Was auch immer da an Verhalten zugrunde gelegt wird, das werden die dir ja nicht verraten. Sie wollen ja sehr offensichtlich nicht, dass du tust, was du tust.

Re: Selenium in Python - Die Website blockiert mich, was kann ich tun?

Verfasst: Montag 25. Juli 2022, 18:45
von sparrow
Und du irrst in der Annahme, dass das unbedingt etwas mit dem Inhalt der Kommunikation zu tun hat.

Re: Selenium in Python - Die Website blockiert mich, was kann ich tun?

Verfasst: Montag 25. Juli 2022, 22:24
von noisefloor
Hallo,
...sondern dass ich mit Software das mit verschiedenen Konten öfters machen kann und somit die Gesamte Chance erhöhen kann...
Also willst du etwas erreichen, was auf normalen, manuellem Wege nicht geht bzw. wenn nur mit stark erhöhtem Aufwand an Zeit und ggf. Hardware.

Da der Betreiber der Seite aber sehr offensichtlich ein verstärktes Interesse daran hat, dass das ganze chancengleich für alle (manuellen) Teilnehmer läuft, hat er halt Maßnahmen zur Erkennung und Abwehr von Schritte, wie du sie gehen willst, implementiert. Ich vermute mal stark: aus gutem Grund. Wenn du die Maßnahmen umgehen wolltest müsstest du erstmal die Erkennunsheuristik der Webseite gegen ungewollte Zugriffe kennen. Ohne ist das IMHO reine Zeitverschwendung, was zu probieren. Aber ich denke, User Argent oder Webdriver tauschen ist viiiel zu simple. Da musst du denke ich schon deutlich schwerer Geschütze auffahren.

Gruß, noisefloor

Re: Selenium in Python - Die Website blockiert mich, was kann ich tun?

Verfasst: Dienstag 26. Juli 2022, 00:39
von snafu
Wenn das irgendein Wettbewerb ist, wo Scraping dir einen unerlaubten Vorteil verschafft, dann ist ja klar, dass dies blockiert wird...

Re: Selenium in Python - Die Website blockiert mich, was kann ich tun?

Verfasst: Montag 4. September 2023, 14:52
von Matthias0911
Blöde Frage an der Stelle: Wenn er Selenium lokal auf dem Rechner ausfuehrt, dann wird doch auch nur der installierte Browser verwendet. Wie sollte dieser denn erkannt werden als "Bot"?

Re: Selenium in Python - Die Website blockiert mich, was kann ich tun?

Verfasst: Montag 4. September 2023, 15:00
von __deets__
Es kann zB sein, dass die Browser das in Headern mitliefern. Und dann kann es eben verhaltensabhaengig sein. Ich kenne Leute bei Zalando, der Aufwand, den die betreien, um sowas zu vermeiden, ist immens. Und wie ueblich ist es das Verhalten einiger weniger, weswegen es fuer alle beschissener wird...

Re: Selenium in Python - Die Website blockiert mich, was kann ich tun?

Verfasst: Dienstag 5. September 2023, 14:34
von Kebap
Wer bestellt denn botgesteuert bei Zalando? Ich meine, da muss man doch sowieso eine Lieferadresse angeben. Man wird also sofort erkannt. Und was bringt dagegen Schnelligkeit?

Re: Selenium in Python - Die Website blockiert mich, was kann ich tun?

Verfasst: Dienstag 5. September 2023, 14:38
von __deets__
Zalando hat zB auch Sneaker-Drops. Und was hat das mit einer Lieferadresse zu tun? Wie erkennst du denn einen Bot, der eine Bestellung fuer einen Sneaker (oder eine PS5) taetigt and er Adresse?

Re: Selenium in Python - Die Website blockiert mich, was kann ich tun?

Verfasst: Mittwoch 6. September 2023, 07:30
von Kebap
Ich meinte damit, dass es sich nicht lohnt, 20x Sneaker heimlich per Bot zu bestellen, wenn man eh eine Lieferadresse angeben muss, und dadurch direkt rückverfolgbar wird.
Nicht, dass ich glaube, dass sowas strafrechtliche Konsequenzen nach sich ziehen würde, aber immerhin hat man so schon mal eine vermeintliche Adresse des Botbetreibers.
Es sein denn, jemand wäre so dämlich, und würde die 20 Sneaker an irgendwelchen zufälligen Leute verschenken, die mit ihm in gar keinem Verhältnis stehen. Ebenso sinnlos.

Re: Selenium in Python - Die Website blockiert mich, was kann ich tun?

Verfasst: Mittwoch 6. September 2023, 07:45
von noisefloor
Bei Botbestellungen geht es AFAIK darum, möglichst schnell Ware $FOO in idealerweise größeren Mengen zu kaufen, wenn ein Sonderpreis oder ein limitiertes Angebot vorliegt, damit man dann später die Ware mit Gewinn bei ebay oder Kleinanzeigen oder ... wieder verkaufen kann.
Es geht da nicht um "heimlich", sondern schlicht im Geschwindigkeit. Und ein Bot ist nunmal schneller als ein realer Mensch, der sich durch Webseiten durchklickt und Daten von Hand in Felder eintippt.

Das ist vom Prinzip ähnlich wie automatisiertes Trading an der Börse, wo Bots möglichst schnell auf bestimmte Kurse / Preise reagieren sollen.

Gruß, noisefloor