2

所以假设我在使用时得到一个错误mechanize.Browser.retrieve,我像这样抓住它:

try:
  br.retrieve(url, fname)
except mechanize.HTTPError as e:
  if e.code in [403, 404]:
    # how can I get to the contents of the server-sent error page?
  else:
    raise

此时如何访问服务器发送的错误页面?

我试过使用br.response().get_data(),但使用时似乎没有填充retrieve()

4

1 回答 1

2

由于 HTTP 错误由响应包装mechanize并包含有关响应的其他信息,因此您可以使用e.read()

try:
    br.retrieve(url, fname)
except mechanize.HTTPError as e:
    if e.code in [403, 404]:
        print e.read()
    else:
        raise
于 2013-09-16T22:24:48.723 回答