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实现冒泡,插入,选择排序简单实例
Aug 18 Python
使用Python对IP进行转换的一些操作技巧小结
Nov 09 Python
Python基于递归算法实现的走迷宫问题
Aug 04 Python
Python双向循环链表实现方法分析
Jul 30 Python
pygame游戏之旅 调用按钮实现游戏开始功能
Nov 21 Python
浅谈python函数调用返回两个或多个变量的方法
Jan 23 Python
Python实现定时执行任务的三种方式简单示例
Mar 30 Python
Windows系统下pycharm中的pip换源
Feb 23 Python
python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例
Mar 06 Python
Numpy 多维数据数组的实现
Jun 18 Python
90行Python代码开发个人云盘应用
Apr 20 Python
提取视频中的音频 Python只需要三行代码!
May 10 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类
2006/11/25 PHP
借助script进行Http跨域请求:JSONP实现原理及代码
2013/03/19 Javascript
解析页面加载与js函数的执行 onload or ready
2013/12/12 Javascript
window.onload使用指南
2015/09/13 Javascript
js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解
2016/04/01 Javascript
node.js实现博客小爬虫的实例代码
2016/10/08 Javascript
js编写选项卡效果
2017/05/23 Javascript
D3.js实现简洁实用的动态仪表盘的示例
2018/04/04 Javascript
Vue实现回到顶部和底部动画效果
2019/07/31 Javascript
vue.js使用v-model实现父子组件间的双向通信示例
2020/02/05 Javascript
JavaScript实现字符串与HTML格式相互转换
2020/03/17 Javascript
python实现类似ftp传输文件的网络程序示例
2014/04/08 Python
Python tempfile模块学习笔记(临时文件)
2014/05/25 Python
使用IPython下的Net-SNMP来管理类UNIX系统的教程
2015/04/15 Python
python任务调度实例分析
2015/05/19 Python
Python3实现的字典遍历操作详解
2018/04/18 Python
简单谈谈python基本数据类型
2018/09/26 Python
python之当你发现QTimer不能用时的解决方法
2019/06/21 Python
python3 enum模块的应用实例详解
2019/08/12 Python
python实现大量图片重命名
2020/03/23 Python
python入门之井字棋小游戏
2020/03/05 Python
Python运算符+与+=的方法实例
2021/02/18 Python
吉力贝官方网站:Jelly Belly
2019/03/11 全球购物
自荐信格式技巧有哪些呢
2013/11/19 职场文书
九年级语文教学反思
2014/02/04 职场文书
《穷人》教学反思
2014/04/08 职场文书
安全责任书范文
2014/08/25 职场文书
护士2014年终工作总结
2014/11/11 职场文书
2015年药店工作总结
2015/04/20 职场文书
2015年教研员工作总结
2015/05/26 职场文书
2016大学军训通讯稿
2015/11/25 职场文书
导游词之青城山景区
2019/09/27 职场文书
vue实现水波涟漪效果的点击反馈指令
2021/05/31 Vue.js
浅谈MySQL之select优化方案
2021/08/07 MySQL
Java8中Stream的一些神操作
2021/11/02 Java/Android
游戏《东方异文石:爱亚利亚黎明》正式版发布
2022/04/03 其他游戏