urlparse模块主要是把url拆分为6部分,并返回元组。并且可以把拆分后的部分再组成一个url。主要有函数有urljoin、urlsplit、urlunsplit、urlparse等。
urlparse.urlparse(urlstring[, scheme[, allow_fragments]])
将urlstring解析成6个部分,它从urlstring中取得URL,并返回元组
(scheme, netloc, path, parameters, query, fragment),但是实际上是基于namedtuple,是tuple的子类。它支持通过名字属性或者索引访问的部分URL,每个组件是一串字符,也有可能是空的。组件不能被解析为更小的部分,%后面的也不会被解析,分割符号并不是解析结果的一部分,除非用斜线转义,注意,返回的这个元组非常有用,例如可以用来确定网络协议(HTTP、FTP等等 )、服务器地址、文件路径,等等。
2 |
>>> url = urlparse.urlparse( 'http://www.baidu.com/index.php?username=guol' ) |
4 |
ParseResult(scheme = 'http' , netloc = 'www.baidu.com' ,
path = '/index.php' , params = ' ', query=' username = guol ',
fragment=' ') |
urlparse.urlunparse(parts)
从一个元组构建一个url,元组类似urlparse返回的,它接收元组(scheme, netloc, path, parameters, query, fragment)后,会重新组成一个具有正确格式的URL,以便供Python的其他HTML解析模块使用。
2 |
>>> url = urlparse.urlparse( 'http://www.baidu.com/index.php?username=guol' ) |
4 |
ParseResult(scheme = 'http' , netloc = 'www.baidu.com' ,
path = '/index.php' , params = ' ', query=' username = guol ',
fragment=' ') |
5 |
>>> u = urlparse.urlunparse(url) |
7 |
http: / / www.baidu.com / index.php?username = guol |
urlparse.urlsplit(urlstring[, scheme[, allow_fragments]])
主要是分析urlstring,返回一个包含5个字符串项目的元组:协议、位置、路径、查询、片段。allow_fragments为False时,该元组的组后一个项目总是空,不管urlstring有没有片段,省略项目的也是空。urlsplit()和urlparse()差不多。不过它不切分URL的参数。适用于遵循RFC2396的URL,每个路径段都支持参数。这样返回的元组就只有5个元素。
2 |
>>> url = urlparse.urlparse( 'http://www.baidu.com/index.php?username=guol' ) |
4 |
ParseResult(scheme = 'http' , netloc = 'www.baidu.com' ,
path = '/index.php' , params = ' ', query=' username = guol ',
fragment=' ') |
5 |
>>> url = urlparse.urlsplit( 'http://www.baidu.com/index.php?username=guol' ) |
7 |
SplitResult(scheme = 'http' , netloc = 'www.baidu.com' ,
path = '/index.php' , query = 'username=guol' , fragment = '') |
urlparse.urlunsplit(parts)
urlunsplit使用urlsplit()返回的值组合成一个url
urlparse.urljoin(base, url[, allow_fragments])
urljoin主要是拼接URL,它以base作为其基地址,然后与url中的相对地址相结合组成一个绝对URL地址。函数urljoin在通过为URL基地址附加新的文件名的方式来处理同一位置处的若干文件的时候格外有用。需要注意的是,如果基地址并非以字符/结尾的话,那么URL基地址最右边部分就会被这个相对路径所替换。如果希望在该路径中保留末端目录,应确保URL基地址以字符/结尾。
2 |
>>> urlparse.urljoin( 'http://www.oschina.com/tieba' , 'index.php' ) |
3 |
'http://www.oschina.com/index.php' |
4 |
>>> urlparse.urljoin( 'http://www.oschina.com/tieba/' , 'index.php' ) |
5 |
'http://www.oschina.com/tieba/index.php' |
最新文章
- JS中实现数组和对象的深拷贝和浅拷贝
- Android中关于Handler的若干思考
- Ubuntu 12.04安装vim和配置
- 记一个由MemCached引发的性能问题
- SharePoint表单和工作流 - Nintex篇(七)
- android学习笔记四
- 用jquery 实现 超出字符 截断加上省略号并且可以提示全部内容
- 基于Linux的owncloud搭建
- Hibernate、乐观锁和悲观锁
- 如何在Eclipse中开发并调试自己的插件(或者说如何将自己的代码插件化)
- [Unity3D]转让Android介面
- 1107: 单向公路(bfs+输入整理)(DFS也可以,而且更快)
- 201521123037 《Java程序设计》第11周学习总结
- codeforces 893B Beautiful Divisors 打表
- R.java文件介绍
- JS处理数组内如果相同ID追加一个属性(如字体颜色)
- (转)清除已运行过Rancher和K8S的主机上的环境数据
- v$instance如何生成
- python---django中模板布局
- hover
热门文章
- python(24)- 面向对象进阶
- Hnu 11187 Emoticons :-) (ac自己主动机+贪心)
- Linux高端内存
- 字符串转换成js的日期格式
- java transient关键字(转载)
- FormsAuthentication 在asp.net MVC中的应用
- javascript --- 声明提前(学习笔记)
- Jsp中操作页面显示
- Linux环境下安装Tomcat
- 代码空间项目 -- InstantiationException的异常