0

Ich arbeite mit mechanize und Python 2.7 eine Anforderung an einer Seite mit einem Formular zu senden, diesmal GET DatenPython umleitet form action

<form method='get' action='/470711262846118652822405241081316835027/new2'> 
<textarea name='name' rows='5' style='width:100%'></textarea> 
<br> 
<table summary='' style='width:100%'> 
<tr> 
<td align='right' valign='top'> 
<input type='submit' value='Submit'> 
</td> 
</tr> 
</table> 
</form> 

wenn ich

try: 
    request = Request(url,data,header) 
    response = urlopen(request) 
    html = response.read() 
    return html 
except IOError, e: 
    print "*Cant open {0}{1}{2}".format(fg(2), url,attr(0)) 
    print "*Reason:{0}".format(e.reason) 
    return None 

Die URL Ich benutze In der Anfrage ist www.foo.com/new?name=bar aber die Aktion ist neu2 und diese Aktion leitet mich auf eine andere Seite um und ich kann damit nicht umgehen. Wenn ich all diese Dinge manuell im Browser mache, kann ich den Code 302 aus der Umleitung mit inspect Element sehen.

-Header, Cookies, Daten und alles ist gut, weil ich den 200 https-Code bekommen und ich die Seite lesen kann, aber nicht die Umleitung

Antwort

0

Ich weiß nicht, gut mechanisieren, aber es sieht aus wie Sie haben nicht gesetzt set_handle_redirect, so dass der 302-Statuscode nicht verarbeitet wird. Siehe http://mechanize.readthedocs.io/en/latest/browser_api.html?highlight=handle#mechanize.Browser.set_handle_redirect

Wenn Sie das nicht festgelegt haben, können Sie manuell für HTTP-Status überprüfen müssen 302 und lesen Sie die location Header, um die Umleitung Ziel-URL zu finden.

+0

Vielen Dank für Ihre Antwort. Das Problem hier ist, ich kann nirgends den Code 302 mit Python finden, aber ich kann es manuell im "inspect-Element" vom Browser aus tun. Ich habe bereits die handle_redirect gesetzt, aber nichts passiert. Die Antwort schickt mich wieder auf die gleiche Seite. –

+0

Ich kenne Ihre Anforderungen nicht, aber haben Sie erwogen, Anfragen von Kenneth Reitz zu verwenden? Ein Kinderspiel zu lernen und sehr transparent im Umgang mit Weiterleitungen? Habe beim Start mit Python mehrere Pakete probiert, aber nach Anfragen habe ich nie zurückgeschaut :-) http://docs.python-requests.org/en/master/ – Arminius

+0

Ja, ich habe es schon probiert. Ich versuche alles auf verschiedene Arten. –

Verwandte Themen