mechanize, merkwürdiges Verhalten beim Login

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
dracana
User
Beiträge: 22
Registriert: Donnerstag 11. Oktober 2007, 10:49

hi,

ich arbeite seit ein paar tagen mit dem modul mechanize um mich automatisch auf webseite einzuloggen und auf dieser informationen abzurufen... auf einer clanhomepage und auf schuelervz.net funktioniert dieses auch einwandfrei... allerdings auf der seite eines browsergames nicht. der Aufruf submit() scheint defekt zu sein.

Code: Alles auswählen

import mechanize

browser = mechanize.Browser()
browser.open('http://ogame.de/')
browser.select_form('loginForm')

control = browser.find_control("uni_url", type="select")
control.value = ['uni6.ogame.de']
browser['login'] = '*********'
browser['pass'] = '*********'
browser.submit()
print browser.geturl()
auf schuelervz.net geh ich genau nach diesem Muster vor, und es funktioniert. bei dem aufruf von browser.geturl() wird die addresse ausgegeben, die nach dem einloggen existiert. Bei ogame.de gelang ich allerdings wieder auf der Startseite. Wodran könnte dies liegen?

mfg, thorsten
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Lies da mal bei 9.2 den zweiten Punkt

Und hier die Punkte 5.3 und 5.6 beachten

ogame.de merkt es also, wenn jemand schummeln will ;)
OverNord
User
Beiträge: 72
Registriert: Donnerstag 24. Januar 2008, 11:59
Kontaktdaten:

dracana hat geschrieben:... um mich automatisch auf webseite einzuloggen und auf dieser informationen abzurufen...
Ich frage mich, was das bringen soll. Bei Nachrichtenseiten könnte ich es ja noch verstehen, aber die haben ja meistens Feeds. Und bei den von dir genannten Seiten ist das automatische abrufen von informationen laut AGB nicht gestattet, z.B. wird es bei SchuelerVZ als elektronischer Angriff gewertet.

mfg. Nord
Benutzeravatar
snafu
User
Beiträge: 6738
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Wobei das bei SchülerVZ IMHO nicht so klar definiert ist. Ein "elektronischer Angriff" meint da ja vor allem Fälle, in denen Schaden angerichtet werden soll oder wo Crawler immensen Traffic erzeugen, um Daten auszulesen. Nun kann es aber Gründe geben, dass man bestimmte Informationen für seinen Account abfragen will (z.B. "habe ich neue Nachrichten?") und das sehe ich persönlich nicht als Angriff. Die Werbung, die derjenige nicht sieht, kann es auch nicht sein. Es wird weder erwähnt, dass sie gesehen werden muss (wenn ich nichts übersehen habe), noch wird es verboten, sie durch etwas wie Adblock zu blockieren. Inwiefern man es riskieren will, eine Geldstrafe nach 9.3 zu bekommen (wie auch immer das rechtlich abgesichert ist), steht wiederum auf einem anderen Blatt...

Bei Ogame ist es natürlich was anderes, weil es da fast immer um's Cheaten geht. Außerdem sagen sie ja auch, dass ein Login auf alternativen Wegen grundsätzlich verboten ist.
dracana
User
Beiträge: 22
Registriert: Donnerstag 11. Oktober 2007, 10:49

bei schuelervz geht es einfach nur dadrum dass mir eine kurze rückmeldung gegeben wird, inder steht ob sich iwas verändert hat, ohne, dass ich mich halt einloggen muss... also, sowas wie "neue Nachrichten", "neue Pinnwandeinträge". Oke bei ogame wird es nicht funktionieren... seh ich auch ein. ^^
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Die Frage könnte sein, inwiefern sich ein Browser von einem Python-Programm unterscheidet! Sicherlich ist die Argumentation schwammig, aber imho müßten die dann eine Positiv-Liste anbringen, a la "Benutzen nur mit Firefox, IE, Safari" usw.

Wobei auch das ja sinnlos wäre, sofern man z.B. ein Plugin für den FF hätte, das sich automatisch einloggt und Teile der eigenen Startseite anzeigt.

Wirklich Angst haben die ja nicht, dass man seine Startseite durchforstet, sondern, dass man automatisch andere Benutzer auspioniert und die Daten ggf. dann noch auf externem Wege verfügbar macht.

Wobei es als letztes ja auch für einen Webserver unmöglich ist, festzustellen, ob der http-Request von einem gängigen Browser oder einem Script kommt ;-)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Hyperion hat geschrieben:aber imho müßten die dann eine Positiv-Liste anbringen, a la "Benutzen nur mit Firefox, IE, Safari" usw.
Was ist dann mit den Benutzern von KMeleon, Epiphany, iCab, Arora, lynx, ELinks, dillo, w3m, Midori, Kazehakaze, Shiira, Iceweasel, Skipstone, Sleipnir, Minimo, Fennec, Iron. Was ich ausdrücken will: wie groß sollte denn diese Whitelist sein? Es wird immer mehr "normale" Browser geben, als die in den Geschäftsbedingungen erlaubten. Was dann?

Was das Unterscheiden von Browser und Bot angeht: da gibt es durchaus Möglichkeiten gewisse Muster zu erkennen. Natürlich wirkt das nicht 100% zuverlässig, aber wenn man wollte könnte man da durchaus etwas machen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Leonidas hat geschrieben:
Hyperion hat geschrieben:aber imho müßten die dann eine Positiv-Liste anbringen, a la "Benutzen nur mit Firefox, IE, Safari" usw.
Was ist dann mit den Benutzern von KMeleon, Epiphany, iCab, Arora, lynx, ELinks, dillo, w3m, Midori, Kazehakaze, Shiira, Iceweasel, Skipstone, Sleipnir, Minimo, Fennec, Iron. Was ich ausdrücken will: wie groß sollte denn diese Whitelist sein? Es wird immer mehr "normale" Browser geben, als die in den Geschäftsbedingungen erlaubten. Was dann?
Du hast damit natürlich Recht - ich habe die "..." in meinem Quote vergessen! Ich wollte damit auch nur zeigen, dass man nur bei einer Positiv-Liste wirklich sinnvoll benennen kann, was zum Abrufen der Webseite erlaubt ist. Denn stichhaltig erklärt haben sie so ja nicht, was verboten ist. Dazu müßte man das "normale" Verhalten einer Zugriffssoftware besser erlöutern - oder eben das "unnormale" besser beschreiben.
Was das Unterscheiden von Browser und Bot angeht: da gibt es durchaus Möglichkeiten gewisse Muster zu erkennen. Natürlich wirkt das nicht 100% zuverlässig, aber wenn man wollte könnte man da durchaus etwas machen.
Hm ... wie meinst Du das genau? Im Sinne von Messungen von Reaktionszeiten zwischen Response und neuem Request?
Ich kann mir im Moment nicht so ganz vorstellen, was Du Dir da so denkst.

Generell ist es aber imho Mumpitz, die Tools einschränken zu wollen, die mein Protokoll sprechen ... und http ist ja nun einmal zum Glück ein offener Standard.

Um so etwas sinnvoll entgegen wirken zu können, sollte man da imho besser auf einen leichteren Zugang zu solchen Daten via Webservice o.ä. nachdenken, wie es twitter & co propagieren :-)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Hyperion hat geschrieben:
Was das Unterscheiden von Browser und Bot angeht: da gibt es durchaus Möglichkeiten gewisse Muster zu erkennen. Natürlich wirkt das nicht 100% zuverlässig, aber wenn man wollte könnte man da durchaus etwas machen.
Hm ... wie meinst Du das genau? Im Sinne von Messungen von Reaktionszeiten zwischen Response und neuem Request?
Ich kann mir im Moment nicht so ganz vorstellen, was Du Dir da so denkst.
Nun, ein Bot führt auch nur ein Programm aus, nach dem gewisse Muster im Surfverhalten entstehen (schließlich ist der Bot ja dafür bestimmt eine bestimmte Aufgabe zu erledigen und surft nicht wie ein Mensch mehr oder minder wahllos auf Seiten herum und klickt auf Links die ihn gerade interessieren). So kann man etwa die Zeiträume zwischen den Requests analysieren aber auch gucken ob der User sich ständig nur Profile ansieht. Mit etwas Aufwand kann man auch überlegen ob der User überhaupt von einem klickbaren Link gekommen ist oder die URL selbst eingetippt hat (oder im Falle einer Maschine eher generiert hat) was eher für eine Maschine denn für den Durchschnitts-StudiVZ-User gilt. Man könnte auch gucken ob dieses spezifische Surfverhalten an einen Netzblock gekoppelt ist oder ob die IP des Users sich häufig ändert (eventuell Botnetz?).

Das wären so meine Ideen die mir auf die schnelle einfallen würden. Leute die sich mit Data-Mining in dem Bereich beschäftigen kennen sicher noch andere Kriterien nach denen man schauen könnte.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Ok, das klingt pausibel!

Aber sagen wir es mal so: Wenn ich mir ein Script schreibe, dass mich einloggt und dann meine Startseite empfängt, dürfte es sehr schwer werden, da einen Bot drin zu erkennen.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Hyperion hat geschrieben:Wenn ich mir ein Script schreibe, dass mich einloggt und dann meine Startseite empfängt, dürfte es sehr schwer werden, da einen Bot drin zu erkennen.
Da gebe ich dir recht. Aber dennoch würde ich die Regeln insoweit deuten dass die Betreiber das nicht wünschen :)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
lunar

Leonidas hat geschrieben:
Hyperion hat geschrieben:aber imho müßten die dann eine Positiv-Liste anbringen, a la "Benutzen nur mit Firefox, IE, Safari" usw.
Was ist dann mit den Benutzern von KMeleon, Epiphany, iCab, Arora, lynx, ELinks, dillo, w3m, Midori, Kazehakaze, Shiira, Iceweasel, Skipstone, Sleipnir, Minimo, Fennec, Iron. Was ich ausdrücken will: wie groß sollte denn diese Whitelist sein?
Wie groß ist den der Prozentsatz der Nutzer, die diese Browser tatsächlich verwenden? Anders gefragt: Glaubst du, den Betreiber der *VZ-Seiten entstünde ein wirtschaftlich relevanter Schaden, wenn man mit diesen Browsern nicht auf die Seite zugreifen könnte?

Firefox, Safari, IE und Opera sind wichtig, der Rest kann dem Betreiber rational gesehen egal sein.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

lunar hat geschrieben:Firefox, Safari, IE und Opera sind wichtig, der Rest kann dem Betreiber rational gesehen egal sein.
Selbst Opera kann dem Betreiber egal sein, ändert aber nichts an der Tatsache, dass so eine Whitelist Quatsch wäre.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
snafu
User
Beiträge: 6738
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Notfalls versucht man, menschliches Verhalten zu immitieren. Links werden mittels mechanize "angeklickt", Zeiträume sind 2-4 Sekunden random, ausgegeben wird sich als Firefox usw. Von meinem persönlichen Rechtsempfinden her halte ich sowas für legitim, solange es auf das eigene Profil beschränkt ist. Auch wenn ich hier nicht direkt zum Brechen von AGBs aufrufen will...
Antworten