感谢网友的分享,先自己保存起来;因为网上的是基于 python2.x版本的,所以自己修改了一下能在3.x用了。
将不完整的url拼接成为完整的url;
比如在网页中经常遇到相对路径的
url1 = http://www.bachejian.com
ur2 = /abc/efc/123.html
需要将他们拼接成为http://www.bachejian.com/abc/efc/123.html 就用以下代码:
from urllib.parse import urljoin
from urllib.parse import urlparse
from urllib.parse import urlunparse
from posixpath import normpath
def myjoin(base, url):
url1 = urljoin(base, url)
arr = urlparse(url1)
path = normpath(arr[2])
return urlunparse((arr.scheme, arr.netloc, path, arr.params, arr.query, arr.fragment))
# if __name__ == "__main__":
# print(myjoin("http://www.baidu.com", "abc.html"))
# print(myjoin("http://www.baidu.com", "/../../abc.html"))
# print(myjoin("http://www.baidu.com/xxx", "./../../abc.html"))
# print(myjoin("http://www.baidu.com", "abc.html?key=value&m=x"))