我正在使用mechanize和python 2.7将请求发送到带有表单的页面,这次是GET数据
<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>
当我
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
我在请求中使用的网址是www.foo.com/new?name=bar,但操作是new2,此操作会将我重定向到另一个页面,我无法处理此问题。 当我在浏览器中手动完成所有这些操作时,我可以使用inspect元素从重定向中看到302代码。
标题,cookie,数据和一切都很好,因为我得到200 https代码,我可以阅读页面,但不能重定向
答案 0 :(得分:0)
我不太熟悉机械化,但看起来你没有设置set_handle_redirect
,所以302状态代码没有被处理。
见http://mechanize.readthedocs.io/en/latest/browser_api.html?highlight=handle#mechanize.Browser.set_handle_redirect
如果您尚未设置此选项,则需要手动检查HTTP状态302并阅读location
标头以查找重定向目标URL。