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 01 Python
Python的ORM框架中SQLAlchemy库的查询操作的教程
Apr 25 Python
Windows下Python使用Pandas模块操作Excel文件的教程
May 31 Python
Python3基于sax解析xml操作示例
May 22 Python
Python3实现的字典、列表和json对象互转功能示例
May 22 Python
matplotlib.pyplot绘图显示控制方法
Jan 15 Python
python日志logging模块使用方法分析
May 23 Python
django 微信网页授权认证api的步骤详解
Jul 30 Python
使用pytorch搭建AlexNet操作(微调预训练模型及手动搭建)
Jan 18 Python
PyQt5 界面显示无响应的实现
Mar 26 Python
Python如何将函数值赋给变量
Apr 28 Python
Python基础之操作MySQL数据库
May 06 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实现异步调用的4种方法
2016/03/14 PHP
Laravel相关的一些故障解决
2020/08/19 PHP
“不能执行已释放的Script代码”错误的原因及解决办法
2007/09/09 Javascript
JS 控制CSS样式表
2009/08/20 Javascript
JavaScript几种形式的树结构菜单
2010/05/10 Javascript
javascript hasFocus使用实例
2010/06/29 Javascript
javaScript 删除字符串空格多种方法小结
2012/10/24 Javascript
jquery Moblie入门—hello world的示例代码学习
2013/01/08 Javascript
HTML5实现留言和回复页面样式
2015/07/22 Javascript
纯javascript实现的小游戏《Flappy Pig》实例
2015/07/27 Javascript
js实现三级联动效果(简单易懂)
2017/03/27 Javascript
JS正则获取HTML元素的方法
2017/03/31 Javascript
利用hasOwnProperty给数组去重的面试题分享
2018/11/05 Javascript
浅谈Vue CLI 3结合Lerna进行UI框架设计
2019/04/14 Javascript
微信小程序云开发之数据库操作
2019/05/18 Javascript
electron实现静默打印的示例代码
2019/08/12 Javascript
Nodejs监控事件循环异常示例详解
2019/09/22 NodeJs
JS实现滑动插件
2020/01/15 Javascript
使用python删除nginx缓存文件示例(python文件操作)
2014/03/26 Python
python实现巡检系统(solaris)示例
2014/04/02 Python
Python3.5.3下配置opencv3.2.0的操作方法
2018/04/02 Python
python实现支付宝当面付(扫码支付)功能
2018/05/30 Python
python处理csv中的空值方法
2018/06/22 Python
使用Python写一个量化股票提醒系统
2018/08/22 Python
Linux CentOS Python开发环境搭建教程
2018/11/28 Python
pytorch 更改预训练模型网络结构的方法
2019/08/19 Python
详解Python3定时器任务代码
2019/09/23 Python
python科学计算之scipy——optimize用法
2019/11/25 Python
CSS3结构性伪类选择器九种写法
2012/04/18 HTML / CSS
HTML5使用ApplicationCache接口实现离线缓存技术解决离线难题
2012/12/13 HTML / CSS
蔻驰西班牙官网:COACH西班牙
2019/01/16 全球购物
毕业生找工作求职信
2014/08/05 职场文书
辞职信模板(中英文版)
2015/02/27 职场文书
2015最新婚礼主持词
2015/06/30 职场文书
田径运动会广播稿
2015/08/19 职场文书
MySQL里面的子查询的基本使用
2021/08/02 MySQL