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使用BeautifulSoup分页网页中超链接的方法
Apr 04 Python
利用Python的Twisted框架实现webshell密码扫描器的教程
Apr 16 Python
详解Django中的权限和组以及消息
Jul 23 Python
python 动态加载的实现方法
Dec 22 Python
Python3 replace()函数使用方法
Mar 19 Python
python selenium 获取标签的属性值、内容、状态方法
Jun 22 Python
Python多继承原理与用法示例
Aug 23 Python
基于Python实现迪杰斯特拉和弗洛伊德算法
May 27 Python
python面向对象法实现图书管理系统
Apr 19 Python
Python实现Singleton模式的方式详解
Aug 08 Python
扩展Django admin的list_filter()可使用范围方法
Aug 21 Python
python switch 实现多分支选择功能
Dec 21 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
thinkphp实现上一篇与下一篇的方法
2014/12/08 PHP
Django中的cookie与session操作实例代码
2017/08/17 PHP
PHP实现的DES加密解密类定义与用法示例
2020/11/02 PHP
PHP商品秒杀问题解决方案实例详解【mysql与redis】
2019/07/22 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
2019/12/20 PHP
jQuery中读取json文件示例代码
2013/05/10 Javascript
JavaScript实现维吉尼亚(Vigenere)密码算法实例
2013/11/22 Javascript
js 获取元素下面所有li的两种方法
2014/04/14 Javascript
网页收藏夹显示ICO图标(代码少)
2015/08/04 Javascript
浅析jQuery移动开发中内联按钮和分组按钮的编写
2015/12/04 Javascript
Bootstrap每天必学之导航组件
2016/04/25 Javascript
Jquery鼠标放上去显示全名的实现方法
2017/02/06 Javascript
ES6新特性六:promise对象实例详解
2017/04/21 Javascript
基于JavaScript实现报警器提示音效果
2017/10/27 Javascript
微信小程序实现图片压缩功能
2018/01/26 Javascript
详解Require.js与Sea.js的区别
2018/08/05 Javascript
nodejs读取本地中文json文件出现乱码解决方法
2018/10/10 NodeJs
vue实现侧边栏导航效果
2019/10/21 Javascript
es6函数之严格模式用法实例分析
2020/03/17 Javascript
谈谈node.js中的模块系统
2020/09/01 Javascript
使用基于Python的Tornado框架的HTTP客户端的教程
2015/04/24 Python
Python的gevent框架的入门教程
2015/04/29 Python
Python使用pymysql小技巧
2017/06/04 Python
Python中SQLite如何使用
2020/05/27 Python
PyQT5速成教程之Qt Designer介绍与入门
2020/11/02 Python
html5中canvas学习笔记1-画板的尺寸与实际显示尺寸
2013/01/06 HTML / CSS
美国Jeep配件购物网站:Morris 4×4 Center
2019/05/01 全球购物
生产车间实习自我鉴定
2013/09/23 职场文书
护士辞职信范文
2014/01/19 职场文书
广告传媒专业应届生求职信
2014/03/01 职场文书
广播节目策划方案
2014/05/23 职场文书
旅行社优秀创业计划书
2014/08/16 职场文书
信用卡结清证明怎么写
2014/09/13 职场文书
学生乘坐校车安全责任书
2015/05/11 职场文书
2016年百日安全生产活动总结
2016/04/06 职场文书
kubernetes集群搭建Zabbix监控平台的详细过程
2022/07/07 Servers