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

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Kreuzzes
User
Beiträge: 3
Registriert: Sonntag 24. Juli 2022, 16:15

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.
Benutzeravatar
sparrow
User
Beiträge: 4237
Registriert: Freitag 17. April 2009, 10:28

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 ;)
Benutzeravatar
noisefloor
User
Beiträge: 3882
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

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
Kreuzzes
User
Beiträge: 3
Registriert: Sonntag 24. Juli 2022, 16:15

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
Kreuzzes
User
Beiträge: 3
Registriert: Sonntag 24. Juli 2022, 16:15

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.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

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.
Benutzeravatar
sparrow
User
Beiträge: 4237
Registriert: Freitag 17. April 2009, 10:28

Und du irrst in der Annahme, dass das unbedingt etwas mit dem Inhalt der Kommunikation zu tun hat.
Benutzeravatar
noisefloor
User
Beiträge: 3882
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

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
Benutzeravatar
snafu
User
Beiträge: 6750
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Wenn das irgendein Wettbewerb ist, wo Scraping dir einen unerlaubten Vorteil verschafft, dann ist ja klar, dass dies blockiert wird...
Matthias0911
User
Beiträge: 10
Registriert: Montag 4. September 2023, 12:18

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"?
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

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...
Benutzeravatar
Kebap
User
Beiträge: 696
Registriert: Dienstag 15. November 2011, 14:20
Wohnort: Dortmund

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?
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

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?
Benutzeravatar
Kebap
User
Beiträge: 696
Registriert: Dienstag 15. November 2011, 14:20
Wohnort: Dortmund

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.
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
Benutzeravatar
noisefloor
User
Beiträge: 3882
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

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
Antworten