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)