![](/img/trans.png)
[英]Python: How to replace all relative urls in a document with absolute urls
[英]Make all URLs absolute in a context with both absolute and relative URLs
我正在研究一个网络抓取系统,我正在尝试处理所有网址的绝对性。
基本上,是否有一种正确的方法来使URL绝对?
urllib.parse.urljoin
无法执行此操作。
>>> urllib.parse.urljoin('http://www.google.com', 'www.bing.com')
'http://www.google.com/www.bing.com'
所以用urllib.parse.urljoin()
盲目地展平所有链接是不可行的。 在绝对URL具有完整方案的情况下,Tt确实可以工作:
>>> urllib.parse.urljoin('http://www.google.com', 'http://www.bing.com/')
'http://www.bing.com/'
这似乎应该是urllib.parse
模块中的某种东西,或类似的东西。 我可以通过urllib.parse.urlsplit()
的输出来urllib.parse.urlsplit()
我自己的urllib.parse.urlsplit()
以决定我是否需要有条件地将urljoin()
一个url放到url根目录上,但这似乎很粗糙。
在大多数情况下,相对URL没有“www”。 在里面。 因此,您可以检查第二个URL,然后加入网址
def joinURLs(main,relative):
if 'www.' in relative:
return relative
return urllib.parse.urljoin(main,relative)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.