使用Beautiful Soup获取URL

时间:2014-04-23 08:31:04

标签: python html http

我有一个重定向(即HTTP 302)到实际网站的URL。然后我解析。但是,我想获得网站的实际URL(即真正的URL)。有没有办法在BeautifulSoup中这样做。

即www.bananas.com - 重定向 - > www.realfruit.com。它是www.realfruit.com网址,我希望以字符串形式获取。

1 个答案:

答案 0 :(得分:2)

HTML页面的URL是HTTP元数据,实际上与HTML源无关。 BeautifulSoup传递HTML源(以文件对象或字符串的形式), HTTP上下文。它并不知道任何关于来源的来源。

充其量,如果运气好的话,HTML源代码会包含canonical URL <link> tag,这是搜索引擎在尝试再次将人们引导到同一页面时应使用的网址。但是,这不一定是用于在将页面交给BeautifulSoup之前加载页面的实际URL!

如果您使用requests加载网页,只需询问 it 以获取网址。 response.url告诉您响应加载的URL。您可以使用response.history访问重定向历史记录,其中包含导致最终响应的任何30x响应。

urllib2个回复的.geturl() method会返回使用的最终网址;同样适用于Python 3&#39; urllib.request.urlopen() responses

相关问题