我正在尝试从 python 中的 Mechanize 获取响应代码。虽然我能够获得 200 状态代码,但其他任何内容都不会返回(404 抛出和异常,30x 被忽略)。有没有办法获取原始状态码?
Thanks
错误会抛出异常,因此只需使用 try:... except:... 来处理它们。
您的 Mechanize 浏览器对象具有 set_handle_redirect() 方法,您可以使用该方法打开或关闭 30 倍重定向。将其关闭,您会收到一个重定向错误,就像处理任何其他错误一样:
>>> from mechanize import Browser
>>> browser = Browser()
>>> resp = browser.open('http://www.oxfam.com') # this generates a redirect
>>> resp.geturl()
'http://www.oxfam.org/'
>>> browser.set_handle_redirect(False)
>>> resp = browser.open('http://www.oxfam.com')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "build\bdist.win32\egg\mechanize\_mechanize.py", line 209, in open
File "build\bdist.win32\egg\mechanize\_mechanize.py", line 261, in _mech_open
mechanize._response.httperror_seek_wrapper: HTTP Error 301: Moved Permanently
>>>
>>> from urllib2 import HTTPError
>>> try:
... resp = browser.open('http://www.oxfam.com')
... except HTTPError, e:
... print "Got error code", e.code
...
Got error code 301
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)