python3 URL拼接代码

感谢网友的分享,先自己保存起来;因为网上的是基于 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"))

你可能感兴趣的:(学习,url,爬虫)