gpt4 book ai didi

python - 如何使用 BeautifulSoup 从相对网站路径获取完整网站路径

转载 作者:太空宇宙 更新时间:2023-11-03 16:24:52 25 4
gpt4 key购买 nike

我正在实现一个网络爬虫,我正在尝试解析 HTML 中的链接。我可以遵循完整的网站路径,但某些相对路径有点奇怪。

我可以遵循完整路径,即 http://foo.com/bar/baz我能够找到一种遵循相对路径的方法,即 /qux通过使用以下函数:

def baseUrl(url):
u = urlparse.urlparse(url)
return "{}://{}{}/".format(u.scheme, u.netloc, '/'.join(u.path.split('/')[:-1]))

def fullUrl(url, parent):
u = urlparse.urlparse(url)
if u.scheme:
return url.split("/#")[0]
else:
return "{}{}".format(baseUrl(parent), url).split("/#")[0]

但有时,网站网址是http://foo.com/bar/baz ,在 HTML 中,有类似 <a href='/bar/qux' 的内容。 。目标网址应为 http://foo.com/bar/qux ,但我的代码输出 http://foo.com/bar//bar/qux .

有谁知道一种通用方法来找出两个 URL 之间的哪些部分匹配,以便从相对路径中找出完整路径?

最佳答案

我一直做的并且到目前为止对我有用的就是调用 urljoin()与当前页面 URL:

>>> from urlparse import urljoin
>>> urljoin("http://foo.com/bar/baz", "/bar/qux")
'http://foo.com/bar/qux'

关于python - 如何使用 BeautifulSoup 从相对网站路径获取完整网站路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38079120/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com