当前位置: 首页 > 面试题库 >

使用urllib2.urlopen时如何获得最终的重定向URL?

漆雕育
2023-03-14
问题内容

我正在使用该urllib2.urlopen方法打开URL并获取网页的标记。其中一些网站使用301/302重定向将我重定向。我想知道我已重定向到的最终URL。我怎么能得到这个?


问题答案:

调用.geturl()返回的文件对象的方法。根据urllib2文档:

geturl() —返回所获取资源的URL,通常用于确定是否遵循了重定向

例:

import urllib2
response = urllib2.urlopen('http://tinyurl.com/5b2su2')
response.geturl() # 'http://stackoverflow.com/'


 类似资料:
  • 问题内容: 在页面重定向(最好使用curl或wget)之后,我需要获取最终的URL。 例如, http://google.com 可以重定向到 http://www.google.com 。 内容很容易获得(例如),但是我只对最终URL(在前一种情况下为http://www.google.com)感兴趣。 仅使用Linux内置工具有什么方法可以做到这一点?(仅命令行) 问题答案: 的选项和sub变

  • 我需要访问十万个或更多的url,并检查它们是否重定向到不同的最终url。 我正在使用https://www.scrapeulous.com这样做。但我需要编写一个简单的自定义函数来实现它。他使用了got图书馆。其中的文档在以下重定向选项中指出: 跟随重定向 类型:布尔值默认值:true 定义重定向响应是否应自动执行。 注意,如果服务器响应任何请求类型(POST、DELETE等)发送303,则Got

  • 问题内容: 调用指向从RSS源中获取的文章的链接会导致以下错误: urllib2.HTTPError:HTTP错误301:HTTP服务器返回了重定向错误,这将导致无限循环。最后30x错误消息是:永久移动 根据文档,urllib2支持重定向。 在Java上,只需调用即可解决问题 如何使用Python解决? 更新 我遇到的链接有问题: http://feeds.nytimes.com/click.ph

  • 问题内容: 拨打电话时是否提取整个页面? 我只想读取HTTP响应标头而不获取页面。看起来像打开HTTP连接,然后随后获取实际的HTML页面……还是只是通过调用来开始缓冲页面? 问题答案: 使用该方法获取标题。 从urllib2文档: urllib2.urlopen(url [,data] [,timeout]) … 此函数返回带有两个其他方法的文件状对象: geturl()—返回所获取资源的URL

  • 问题内容: 在Python中,我使用urllib2打开一个URL。该URL重定向到另一个URL,该URL重定向到另一个URL。 我希望在每次重定向后打印出网址。 例如 -> =重定向到 A-> B-> C-> D 我想打印B,C和D的URL(A是已知的,因为它是起始URL)。 问题答案: 最好的方法可能是继承。深入Python的重定向一章可能会有所帮助。

  • 问题内容: 如何使用除urllib2.urlopen上的默认代理之外的其他用户代理下载网页? 问题答案: 这个问题中有示例代码,但是基本上你可以执行以下操作:(请注意User-Agent,RFC 2616第14.43节的大写形式。)