如何使用 Python 获取重定向的 URL
在 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
只需询问当前 URL,即可轻松获得 D。
要处理中间重定向,您可能需要构建自己的开启器,使用 HTTPRedirectHandler 记录重定向。
You can easily get D by just asking for the current URL.
To deal with the intermediate redirects you'll probably need to build your own opener, using HTTPRedirectHandler that records the redirects.
也许最好的方法是子类化
urllib2.HTTPRedirectHandler
。深入了解 Python 的有关重定向的章节可能会有所帮助。Probably the best way is to subclass
urllib2.HTTPRedirectHandler
. Dive Into Python's chapter on redirects may be helpful.对于Python 3,解决方案为
urllib< /code>
更简单:
For Python 3, the solution with
urllib
is much simpler: