我正在使用网络抓取系统,而我正试图处理所有网址的绝对制作。
基本上,有一种正确的方法可以使URL绝对吗?
urllib.parse.urljoin
无法做到这一点。
>>> urllib.parse.urljoin('http://www.google.com', 'www.bing.com')
'http://www.google.com/www.bing.com'
如此盲目地将所有与urllib.parse.urljoin()
的链接展平是不可行的。
Tt在绝对URL具有完整方案的情况下工作:
>>> urllib.parse.urljoin('http://www.google.com', 'http://www.bing.com/')
'http://www.bing.com/'
这似乎应该是urllib.parse
模块中的某种东西,或类似的东西。我可以通过使用urllib.parse.urlsplit()
的输出来推动我自己的canonizer来决定我是否需要有条件urljoin()
一个url到url根目录,但这似乎很粗糙。
答案 0 :(得分:0)
在大多数情况下,相对网址没有" www。"在里面。因此,您可以检查第二个网址,然后加入网址
def joinURLs(main,relative):
if 'www.' in relative:
return relative
return urllib.parse.urljoin(main,relative)