如何使用 Python 获取重定向的 URL

发布于 2024-10-15 16:58:58 字数 210 浏览 4 评论 0原文

在 Python 中,我使用 urllib2 打开 url。此 url 重定向到另一个 url,该 url 又重定向到另一个 url。

我希望在每次重定向后打印出网址。

例如

-> = 重定向到

A -> B-> C-> D

我想打印 B、C 和 D 的 URL(A 是已知的,因为它是起始 URL)。

In Python, I'm using urllib2 to open a url. This url redirects to another url, which redirects to yet another url.

I wish to print out the url after each redirect.

For example

-> = redirects to

A -> B -> C -> D

I want to print the URL of B, C and D (A is already known because it's the start URL).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

英雄似剑 2024-10-22 16:58:58

只需询问当前 URL,即可轻松获得 D。

req = urllib2.Request(starturl, datagen, headers)
res = urllib2.urlopen(req)
finalurl = res.geturl()

要处理中间重定向,您可能需要构建自己的开启器,使用 HTTPRedirectHandler 记录重定向。

You can easily get D by just asking for the current URL.

req = urllib2.Request(starturl, datagen, headers)
res = urllib2.urlopen(req)
finalurl = res.geturl()

To deal with the intermediate redirects you'll probably need to build your own opener, using HTTPRedirectHandler that records the redirects.

月依秋水 2024-10-22 16:58:58

也许最好的方法是子类化urllib2.HTTPRedirectHandler。深入了解 Python 的有关重定向的章节可能会有所帮助。

Probably the best way is to subclass urllib2.HTTPRedirectHandler. Dive Into Python's chapter on redirects may be helpful.

成熟稳重的好男人 2024-10-22 16:58:58

对于Python 3,解决方案为 urllib< /code>更简单:

import urllib


def resolve(url):
    return urllib.request.urlopen(url).geturl()

For Python 3, the solution with urllib is much simpler:

import urllib


def resolve(url):
    return urllib.request.urlopen(url).geturl()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文