【问题标题】:Python 3.2 dealing with Redirect to relative url HTTP Error 302Python 3.2 处理重定向到相对 URL HTTP 错误 302
【发布时间】:2011-07-24 07:48:17
【问题描述】:

我正在尝试使用 Python 3.2 进入一个不使用额外模块的网站。

我正在使用 urllib.request.urlopen(site),但是当您请求该站点时,由于未处理的 PHP 重定向到“/”而引发 HTTP 302 错误

在重定向期间,网站会设置一个 cookie,以便进一步访问该网站。

我将如何在 Python 中处理这个问题?

【问题讨论】:

  • 查看 http.cookiejar 的 cookie 文档:docs.python.org/py3k/library/http.cookiejar.html#examples。以及用于重定向的 HTTPRedirectHandler:docs.python.org/release/3.0.1/library/…
  • 对不起,但在过去的几天里,我什至无法访问 python.org 我很确定它正在停机维护或其他什么 =\
  • 上下波动。不过,它目前似乎正在上升。
  • 在阅读了 Python 3.2.1 的文档之后,我仍然不知道应该如何处理重定向到主站点。抱歉我对 Python 有点陌生,刚从 VB.net 转过来
  • 我不太确定 - 文档建议它默认处理 302 重定向。您可能想发布一个带有回溯和代码的新问题。

标签: python python-3.x python-3.2


【解决方案1】:

302 重定向并不完全是“200 成功”,但我也不会完全称其为错误,直到您获取它指向的 url。该网站可能存在内部错误,但响应是一个直接的重定向,这就是您的客户端代码所关心的。

在 python3.2 中,尝试坚持“包含电池”并依赖 urllib 等标准库通常是有意义的。

此时,您绝对应该使用请求。例如见standard documentation example:

>>> r = requests.get(url)
>>> r.cookies['example_cookie_name']

【讨论】:

    猜你喜欢
    • 2018-07-15
    • 1970-01-01
    • 2017-03-16
    • 2018-04-18
    • 1970-01-01
    • 2012-06-25
    • 1970-01-01
    • 2022-08-16
    • 1970-01-01
    相关资源
    最近更新 更多