mechanize -- Problem

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
Benutzeravatar
jonas
User
Beiträge: 156
Registriert: Dienstag 9. September 2008, 21:03

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....
Zuletzt geändert von jonas am Donnerstag 18. Dezember 2008, 19:24, insgesamt 2-mal geändert.
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.
Benutzeravatar
jonas
User
Beiträge: 156
Registriert: Dienstag 9. September 2008, 21:03

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...
Benutzeravatar
crackpod_
User
Beiträge: 40
Registriert: Mittwoch 3. Dezember 2008, 21:46

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
Benutzeravatar
jonas
User
Beiträge: 156
Registriert: Dienstag 9. September 2008, 21:03

Danke euch beiden crackpod & BlackJack!
MfG Jonas :D
PS: Schöne Weihnacht und guten Rutsch!
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
jonas
User
Beiträge: 156
Registriert: Dienstag 9. September 2008, 21:03

@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 ;)
Benutzeravatar
crackpod_
User
Beiträge: 40
Registriert: Mittwoch 3. Dezember 2008, 21:46

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
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

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 ;)
Benutzeravatar
jonas
User
Beiträge: 156
Registriert: Dienstag 9. September 2008, 21:03

@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 ;)
Antworten