python中urlparse模块介绍与使用示例


Posted in Python onNovember 19, 2017

简介

urlparse模块主要是用于解析url中的参数  对url按照一定格式进行 拆分或拼接。urlparse库用于把url解析为各个组件,支持file,ftp,http,https, imap, mailto, mms, news, nntp, prospero, rsync, rtsp, rtspu, sftp, shttp, sip, sips, snews, svn, svn+ssh, telnet等几乎所有的形式。

注意:根据其官网的说明,在Python3.0中,此库已经更名为urllib.parse了。

使用说明

1.urlparse.urlparse

将url分为6个部分,返回一个包含6个字符串项目的元组:协议、位置、路径、参数、查询、片段。

import urlparse
url_change = urlparse.urlparse('https://i.cnblogs.com/EditPosts.aspx?opt=1')
print url_change

输出结果为:

ParseResult(scheme='https', netloc='i.cnblogs.com', path='/EditPosts.aspx', params='', query='opt=1', fragment='')

其中 scheme 是协议  netloc 是域名服务器  path 相对路径  params是参数,query是查询的条件

urlparse.parse_qs(urlparse.urlparse(url).query)

这个是获取urlparse分割后元祖中的某一项  urlparse.urlparse(url).query   获取查询条件

parse_qs 有几种实现

  • urlparse.parse_qs 返回字典
  • urlparse.parse_qsl 返回列表

2. urlparse.urlsplit

和urlparse差不多,将url分为5部分,返回一个包含5个字符串项目的元组:协议、位置、路径、查询、片段。

import urlparse
url_change = urlparse.urlsplit('https://i.cnblogs.com/EditPosts.aspx?opt=1')
print url_change
SplitResult(scheme='https', netloc='i.cnblogs.com', path='/EditPosts.aspx', query='opt=1', fragment='')

其中 scheme 是协议  netloc 是域名服务器  path 相对路径 query是查询的条件

3.urlparse.urljoin

将相对的地址组合成一个url,对于输入没有限制,开头必须是http://,否则将不组合前面。

import urlparse
new_url = urlparse.urljoin('https://baidu.com/ssss/','88888')
print new_url

输出 https://baidu.com/ssss/88888

如果输入错误信息 如  new_url = urlparse.urljoin('122','88888')    并不会将两者合并   输出‘88888'

urlparse获取url后面的参数

如果给定你一个URL,比如: http://url/api?param=2¶m2=4 我们需要获取参数名和参数值的话,那可以用到python标准库urlparse

import urlparse
def qs(url):
  query = urlparse.urlparse(url).query
  return dict([(k,v[0]) for k,v in urlparse.parse_qs(query).items()])

print qs('http://url/api?param=2¶m2=4') 返回的结果: {'param':'2','param2':'4'}

注意:这个模块的parse_qs方法在2;5的版本是不存在的,只有2.5以上的才有,你需要调用该方法的时候可以先通过dir(urlparse)查看模块urlparse是否有相应的方法。

官方文档地址  http://docs.python.org/library/urlparse.html

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
python读取html中指定元素生成excle文件示例
Apr 03 Python
深入解析Python中的WSGI接口
May 11 Python
基于Python __dict__与dir()的区别详解
Oct 30 Python
Python处理中文标点符号大集合
May 14 Python
python虚拟环境迁移方法
Jan 03 Python
python的sorted用法详解
Jun 25 Python
python 梯度法求解函数极值的实例
Jul 10 Python
Python基础之高级变量类型实例详解
Jan 03 Python
Python tkinter三种布局实例详解
Jan 06 Python
深入了解Python 方法之类方法 & 静态方法
Aug 17 Python
python解决OpenCV在读取显示图片的时候闪退的问题
Feb 23 Python
使用pandas读取表格数据并进行单行数据拼接的详细教程
Mar 03 Python
Python Flask-web表单使用详解
Nov 18 #Python
python+selenium实现京东自动登录及秒杀功能
Nov 18 #Python
深入理解Python单元测试unittest的使用示例
Nov 18 #Python
Python及PyCharm下载与安装教程
Nov 18 #Python
Python实现读取json文件到excel表
Nov 18 #Python
浅谈python 线程池threadpool之实现
Nov 17 #Python
python线程池(threadpool)模块使用笔记详解
Nov 17 #Python
You might like
PHP 内存缓存加速功能memcached安装与用法
2009/09/03 PHP
基于php无限分类的深入理解
2013/06/02 PHP
php断点续传之如何分割合并文件
2014/03/22 PHP
PHP实现CSV文件的导入和导出类
2015/03/24 PHP
CI框架实现cookie登陆的方法详解
2016/05/18 PHP
php安装dblib扩展,连接mssql的具体步骤
2017/03/02 PHP
laravel 实现设置时区的简单方法
2019/10/10 PHP
游戏人文件夹程序 ver 3.0
2006/07/14 Javascript
jquery 操作DOM案例代码分享
2012/04/05 Javascript
js实现幻灯片效果(基于jquery插件)
2013/11/05 Javascript
js图片模糊切换显示特效的方法
2015/02/17 Javascript
使用AngularJS实现表单向导的方法
2015/06/19 Javascript
javascript实现简单的分页特效
2015/08/12 Javascript
简单实现兼容各大浏览器的js复制内容到剪切板
2015/09/09 Javascript
分享jQuery网页元素拖拽插件
2020/12/01 Javascript
JS生成一维码(条形码)功能示例
2017/01/19 Javascript
jquery精度计算代码 jquery指定精确小数位
2017/02/06 Javascript
vue-router路由懒加载和权限控制详解
2017/12/13 Javascript
从Node.js事件触发器到Vue自定义事件的深入讲解
2020/06/26 Javascript
[04:00]DOTA2解说界神雕侠侣 CJ第四天谷子现场过生日
2013/07/30 DOTA
[05:13]TI4 中国战队 机场出征!!
2014/07/07 DOTA
python 装饰器功能以及函数参数使用介绍
2012/01/27 Python
django的登录注册系统的示例代码
2018/05/14 Python
python3读取excel文件只提取某些行某些列的值方法
2018/07/10 Python
Numpy之文件存取的示例代码
2018/08/03 Python
Python multiprocessing多进程原理与应用示例
2019/02/28 Python
pytorch索引查找 index_select的例子
2019/08/18 Python
python 监测内存和cpu的使用率实例
2019/11/28 Python
Spring实战之使用util:命名空间简化配置操作示例
2019/12/09 Python
python开发实例之python使用Websocket库开发简单聊天工具实例详解(python+Websocket+JS)
2020/03/18 Python
jupyter 中文乱码设置编码格式 避免控制台输出的解决
2020/04/20 Python
教师远程培训感言
2014/03/06 职场文书
党委班子剖析材料
2014/08/21 职场文书
未受刑事制裁公证证明
2014/09/20 职场文书
初中班干部工作总结
2015/08/10 职场文书
高二数学教学反思
2016/02/18 职场文书