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动态加载包的方法小结
Apr 18 Python
python利用urllib和urllib2访问http的GET/POST详解
Sep 27 Python
python中文分词教程之前向最大正向匹配算法详解
Nov 02 Python
Python采集代理ip并判断是否可用和定时更新的方法
May 07 Python
Numpy数据类型转换astype,dtype的方法
Jun 09 Python
解决pandas中读取中文名称的csv文件报错的问题
Jul 04 Python
APIStar:一个专为Python3设计的API框架
Sep 26 Python
解决nohup执行python程序log文件写入不及时的问题
Jan 14 Python
python做反被爬保护的方法
Jul 01 Python
python序列类型种类详解
Feb 26 Python
python判断all函数输出结果是否为true的方法
Dec 03 Python
python中Pexpect的工作流程实例讲解
Mar 02 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中通过curl模拟登陆discuz论坛的实现代码
2012/02/16 PHP
将博客园(cnblogs.com)数据导入到wordpress的代码
2013/01/06 PHP
PHP对象递归引用造成内存泄漏分析
2014/08/28 PHP
PHP判断网络文件是否存在的方法
2015/03/12 PHP
php实现将任意进制数转换成10进制的方法
2015/04/17 PHP
PHP错误机制知识汇总
2016/03/24 PHP
PHP用户验证和标签推荐的简单使用
2016/10/31 PHP
利用腾讯的ip地址库做ip物理地址定位
2010/07/24 Javascript
jQuery Ajax 仿AjaxPro.Utility.RegisterTypeForAjax辅助方法
2011/09/27 Javascript
javascript写的一个模拟阅读小说的程序
2014/04/04 Javascript
JavaScript正则表达式的分组匹配详解
2016/02/13 Javascript
JS检测是否可以访问公网服务器功能代码
2017/06/19 Javascript
Easyui ueditor 整合解决不能编辑的问题(推荐)
2017/06/25 Javascript
微信小程序之前台循环数据绑定
2017/08/18 Javascript
推荐10款扩展Web表单的JS插件
2017/12/25 Javascript
在vue项目中引入highcharts图表的方法(详解)
2018/03/05 Javascript
vue webpack打包后图片路径错误的完美解决方法
2018/12/07 Javascript
Windows下安装 node 的版本控制工具 nvm
2020/02/06 Javascript
python批量同步web服务器代码核心程序
2014/09/01 Python
python使用mysql数据库示例代码
2017/05/21 Python
浅谈Python中的作用域规则和闭包
2018/03/20 Python
对python过滤器和lambda函数的用法详解
2019/01/21 Python
如何使用Python标准库进行性能测试
2019/06/25 Python
DataFrame.groupby()所见的各种用法详解
2020/06/14 Python
python 浮点数四舍五入需要注意的地方
2020/08/18 Python
使用pandas实现筛选出指定列值所对应的行
2020/12/13 Python
用python读取xlsx文件
2020/12/17 Python
CSS3圆角边框和边界图片效果实例
2016/07/01 HTML / CSS
html5 canvas移动浏览器上实现图片压缩上传
2016/03/11 HTML / CSS
我们是伦敦女孩:WalG
2018/01/08 全球购物
如何在.net Winform里面显示PDF文档
2012/09/11 面试题
什么是岗位职责
2013/11/12 职场文书
八一建军节营销活动方案
2014/08/31 职场文书
2016年禁毒宣传活动总结
2016/04/05 职场文书
浅析Python中的随机采样和概率分布
2021/12/06 Python
ant design vue的form表单取值方法
2022/06/01 Vue.js