mechanize cache & cookies löschen

Django, Flask, Bottle, WSGI, CGI…
Antworten
Zack3000
User
Beiträge: 2
Registriert: Mittwoch 26. Januar 2022, 14:48

Hallo liebe python-Community,

ich hab dem Framework mechanize ein paar Issues.
Vorgeschichte:
Wir haben eine HP und ein Forum und möchten nach Registrierung der HP auto. ein Forum-Account (phpbb) mit den HP-Daten erstellen.
So weit so gut..

Forum Steps:
#1 - GET // registration.php
#2 - POST // accept terms and conditions,
#3 - POST // nutzen #2-resp form-data + ändern Felder

Sind die #3 form-data fein, ist alle fein. Registrierung geht sauber durch (beliebig oft)
Sobald in #3 einmal ein Fehler auftritt, wie "username already in use" ist es nicht mehr möglich einen validen request zu verschicken.
Bei erneute, auch komplett anderer, Registrierung bekommen wir "Das übermittelte Formular war ungültig. Versuche erneut, das Formular abzusenden." zurück (Eng: "The submitted form was invalid. Try submitting again.")
Das heißt sobald einmal ein Fehler vom Forum zurück kam, lässt sich mit mechanize keine gültige Registrierung mehr realisieren.
Ein Neustart des Programms hilft, ist aber keine Lösung.

Google-Recherche hat ergeben, dass cookies & cache löschen Abhilfe schafft. Mit mechanize konnte ich das aber nicht fixen.
Folgendes Versucht:

Code: Alles auswählen

ua = mechanize.UserAgent()
ua.set_cookiejar(None)

br = mechanize.Browser()
br.set_cookiejar(None)
...
Hat von euch einer eine Idee oder weiß wie ich da mechanize wieder in den Ursprungszustand bekomme oder wie ich ggf einen Cache & cookies sauber lösche

Viele Grüße und danke schon mal fürs lesen :)
Zack
Zack3000
User
Beiträge: 2
Registriert: Mittwoch 26. Januar 2022, 14:48

Fehler-Case:
Erst wenn einmal eine "nicht erfolgreiche Registrierung" durchgeführt wurde.

Code: Alles auswählen

br  = mechanize.Browser()
br.open("https://phpbb-url")

br.select_form(nr=1)
br.submit(label='Ich bin mit diesen Bedingungen einverstanden')

br.select_form(nr=0)
br.form['username'] = 'username'; ...
resp = br.submit(label = 'Absenden')
print(BeautifulSoup(response2.read(), features="lxml").find(id="message").text)
-> "Das übermittelte Formular war ungültig. Versuche erneut, das Formular abzusenden."
__deets__
User
Beiträge: 14528
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich kann zu mechanize aus der Lameng nix sagen, aber wir haben fuer unser PHP-BB einen Registrier-Service via XMLRPC eingebaut, also quasi eine extra Seite, die man nur mit einem Skript bedienen kann, und die dann in die DB schreibt.
Antworten