urlparse主要是URL的分解和拼接,分析出URL中的各项参数,可以被其他的URL使用。
主要的函数有:
1、urlparse
将URL分解为6个片段,返回一个元组,包括协议、基地址、相对地址等等
输出结果为:
ParseResult(scheme='http', netloc='blog.csdn.NET', path='/', params='', query='ref=toolbar', fragment='')
scheme是协议,netloc是服务器地址,path是相对路径,params是参数,query是查询的条件。
如果知道服务器的地址的话,可以以服务器的地址为基地址,拼接其他的相对路径,组成新的URL。
2、urlsplit
和urlparse的作用差不多,将URL分解为5个片段,返回一个元组。返回一个包含5个字符串项目的元组:协议、位置、路径、查询、片段。
- import urlparse
- url = urlparse.urlsplit('http://blog.csdn.net/?ref=toolbar')
- print url
运行结果为:
SplitResult(scheme='http', netloc='blog.csdn.net', path='/', query='ref=toolbar', fragment='')
3、urljoin
基地址和相对地址的拼接。
这个函数比较复杂,不同的数据得出的结果大不一样,而且容易出现错误,不建议用这个函数
urlparse.urljoin(base, url[, allow_fragments])
4、urlunparse
和urlparse的效果相反,可以把6个部分拼接起来。
urlparse.urlunparse(data)
返回一个string
例子:
- import urlparse
- url = "https://www.google.com.hk:8080/home/search;12432?newwi.1.9.serpuc#1234"
- r = urlparse.urlparse(url)
- print r
- print r.port,r.hostname
- print r.geturl()
- r = urlparse.urlsplit(url)
- print r
- parts = ["http","www.facebook.com","/home/email","132","parts","md5=?"]
- print urlparse.urlunparse(parts)
- print urlparse.urlunsplit(parts[0:5])