Seite 1 von 1

mechanize -- Problem

Verfasst: Donnerstag 18. Dezember 2008, 10:44
von jonas
Hi! :D
Habe ein Problem mit mechanize:

Code: Alles auswählen

import mechanize
br = mechanize.Browser()
br.open("http://www.irgendeinedomain.de")
for form in br.forms():
    print form
Das bringt folgendes bei mir:

Code: Alles auswählen

<POST http://www.irgendeinedomain.de/index.php?controller=sessions&action=create application/x-www-form-urlencoded
  <TextControl(player=)>
  <PasswordControl(password=)>
  <SelectControl(world=[, 1, 3, 4, 5, 6, 7, 8, *9])>
  <CheckboxControl(remember=[1])>
  <SubmitControl(<None>=Anmelden) (readonly)>>
Doch ich kann die Forms irgendwie nicht benutzen?
Es kommt immer der Fehler:

Code: Alles auswählen

FormNotFoundError: no form matching name 'TextControl'
Wenn ich versuche auf das Form zuzugreifen mit:

Code: Alles auswählen

br.select_form(name="TextControl")
Hoffe ihr könnt mir vllt. helfen!
MfG Jonas ;)

EDIT: Geändert....

Verfasst: Donnerstag 18. Dezember 2008, 11:15
von BlackJack
Können vielleicht, wollen auf keinen Fall. Aus den Spielregeln:
§4 Programme, die Zugriffe automatisieren, die Spieloberfläche verändern oder übermäßig viele Zugriffe generieren, sind auf allen Seiten von INSELKAMPF strengstens verboten.

Verfasst: Donnerstag 18. Dezember 2008, 11:18
von jonas
ahh ok, hab ich gar nicht gesehen... :oops:
Danke für den Hinweis!
MfG Jonas
PS: Habe trotzdem noch nicht verstanden wie
man auf Forms zugreift...

Verfasst: Donnerstag 18. Dezember 2008, 15:50
von crackpod_
BlackJack hat geschrieben:Können vielleicht, wollen auf keinen Fall. Aus den Spielregeln:
§4 Programme, die Zugriffe automatisieren, die Spieloberfläche verändern oder übermäßig viele Zugriffe generieren, sind auf allen Seiten von INSELKAMPF strengstens verboten.
Wenn er es machen will, ist es seine Sache und wenn sein Account dafür gesperrt dann ist das auch seine Sache.

@Jonas:
Hey, wie dir sicher aufgefallen ist hat die Browser Instanz die select_form Methode. Diese akzeptiert 3 potentielle Parameter, darunter auch die "nr" (Nummer) der Form auf der aktuellen Seite. Das darstellen einer Form mit Bezeichnungen wie "TextControl" etc. wird nur innerhalb von mechanize so gelöst. Das was du eigentlich suchst ist der Name der POST form die du beim iterieren über die Schleife ausgegeben hast. Da wahrscheinlich nur eine Form innerhalb der for-schleife ausgegeben worden ist kannst du davon ausgehen das die Form die du ansprechen willst die Nummer 0 hat.

Code: Alles auswählen

import mechanize
br = mechanize.Browser()
br.open("http://www.inselkampf.de")

br.select_form(nr=0)
br["player"] = "username"
br["password"] = "password"
br["world"] = [1]

print(br.submit().read())
crackpod

Verfasst: Donnerstag 18. Dezember 2008, 17:12
von jonas
Danke euch beiden crackpod & BlackJack!
MfG Jonas :D
PS: Schöne Weihnacht und guten Rutsch!

Verfasst: Donnerstag 18. Dezember 2008, 17:15
von Leonidas
crackpod_ hat geschrieben:Wenn er es machen will, ist es seine Sache und wenn sein Account dafür gesperrt dann ist das auch seine Sache.
So einfach ist das nicht, denn wenn wir wissen dass er etwas plant etwas zu machen was nicht den Regeln entspricht und ihm dabei helfen... naja.

Verfasst: Donnerstag 18. Dezember 2008, 17:20
von jonas
@Leonidas:
Was soll das? Ich möchte niemandem etwas Böses o.ä. hier ging es
um die Programmierung eines IK-Bots aber dies doch auch nicht
um der beste im Spiel zu sein oder ähnliches sondern um mich mit
den Funktionen des moduls "mechanize" vertraut zu machen.
crackpod_ war nur so freundlich mir dabei zu helfen. Wenn es dich
glücklich macht kannst du mich ja ein paar Tage bannen?
Tut mir leid ich werd im Forum nichts illegales fragen. :(
MfG Jonas
Hoffe ihr habt trotzdem schöne Weihnachten ;)

Verfasst: Donnerstag 18. Dezember 2008, 17:28
von crackpod_
jonas hat geschrieben:@Leonidas:
Was soll das? Ich möchte niemandem etwas Böses o.ä. hier ging es
um die Programmierung eines IK-Bots aber dies doch auch nicht
um der beste im Spiel zu sein oder ähnliches sondern um mich mit
den Funktionen des moduls "mechanize" vertraut zu machen.
crackpod_ war nur so freundlich mir dabei zu helfen. Wenn es dich
glücklich macht kannst du mich ja ein paar Tage bannen?
Tut mir leid ich werd im Forum nichts illegales fragen. :(
MfG Jonas
Hoffe ihr habt trotzdem schöne Weihnachten ;)
Jonas am besten nimmst du oben einfach den Part mit dem Bot raus und die Sache hat sich gegessen.

crackpod

Verfasst: Donnerstag 18. Dezember 2008, 17:29
von Leonidas
jonas hat geschrieben:Was soll das?
Nichts, ich sage nur wie es ist. Genauso wie wir Links zu offensichtlich illegalen Inhalten löschen müssen können wir auch Verstöße gegen die Regeln von anderen Seitenbetreibern nicht gutheißen, das ist alles. Ich habe nichts dagegen, dass du dich mit ``mechanize`` bekannt machst, ist ja auch eine gute Idee.
jonas hat geschrieben:crackpod_ war nur so freundlich mir dabei zu helfen. Wenn es dich
glücklich macht kannst du mich ja ein paar Tage bannen?
Tut mir leid ich werd im Forum nichts illegales fragen. :(
Wieso sollte mich Leute bannen glücklich machen? Du wusstest es ja nicht und BlackJack hat dich darauf aufmerksam gemacht. Und ich habe gesagt warum die ganze Sache nicht einfach "seine Sache" ist, wie crackpod_ meinte. Das ist alles.

Keine Ahnung warum ihr euch so aufregt. Ist aber auch egal, wir brauchen das nicht weiterdiskutieren, es ist ja alles offtopic und trägt zu nichts produktivem bei.

Verfasst: Donnerstag 18. Dezember 2008, 17:33
von cofi
Jonas ich bezweifel, dass es Leonidas darum geht dich zu bestrafen ;) Der Punkt ist, dass das Betrug und Verstoß gegen die AGB ist. Wobei man sich bei ersterem mit Sicherheit der Beihilfe schuldig machen kann ;)

Solang es dir nur darum geht dich mit `mechanize' bekanntzumachen und das Skript nicht verwendest/funktionsfähig veröffentlicht ist das ganze wohl halb so schlimm.

In dem Sinne auch dir frohe Weihnachten ;)

Verfasst: Donnerstag 18. Dezember 2008, 18:27
von jonas
@Leonidas:
Meine Formulierungen waren etwas falsch gewählt, Entschuldigung ;).
Wär es ok wenn ich die Sache mit dem Bot einfach rausnehme,
wie Crackpod es vorgeschlagen hat?
Wollt dich damit nicht auf den Arm nehmen oder so, nur in manchen
Foren ist soetwas "Gang-und-Gebe", jemanden bei Verstößen zu bannen.
MfG Jonas ;)