urllib包
在python2中的模块urllib, urlparse, urllib2, 以及其他内容都整合在了urllib单一包中.
urllib和urllib2的内容整合在了urllib.request模块中urlparse的内容整合在了urllib.parse模块中urllib包还包括其他模块如:response, error, robotparse, 后面再学习.
python支持两种不同的模块来处理url, 一个是parse, 另一个是request.
两种模块的功能不一样, 下面会分别介绍两个模块.
parse模块
parse是包urllib下的模块, 只是用来处理url这个字符串本身, 而不负责使用这个url去联网获取资源.
parse主要提供了三个功能: urlparse(), urlunparse(), urljoin()
1. parse.urlparse()
urlparse()用来将url字符串解析成我们前面说的那些组件.
语法:
urlparse(urlstr, defProSch='', allowFrag=True)
说明:
参数1就是
url字符串. 返回值一个ParseResult类型的数据defProSch默认网络协议.allowFrag表示url中是否允许使用片段.
from urllib.parse import *
o = urlparse('http://www.cwi.nl:80/%7Eguido/Python.html')
print(o)
结果:
ParseResult(scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html', params='', query='', fragment='')
2. parse.urlunparse()
是把各个部分组合成url字符串.
from urllib.parse import *
o = urlparse('http://www.cwi.nl:80/%7Eguido/Python.html')
urlstr = urlunparse(o)
print(urlstr)

3. parse.urljoin()
urljoin()实现了url的连接功能.
urljoin(base, new_url, allow_fragments=True)
说明:
取得base的根路径(不包括路径中末端的文件), 然后与new_url连接起来.
from urllib.parse import *
newUrl = urljoin('http://www.cwi.nl/abc/Python.html', 'FAQ.html')
print(newUrl)
