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中的FTP通信模块ftplib的用法整理
Jul 08 Python
Python遍历目录中的所有文件的方法
Jul 08 Python
python处理xml文件的方法小结
May 02 Python
python实现音乐下载器
Apr 15 Python
Python调用adb命令实现对多台设备同时进行reboot的方法
Oct 15 Python
Python 访问限制 private public的详细介绍
Oct 16 Python
学生信息管理系统python版
Oct 17 Python
在Python中获取操作系统的进程信息
Aug 27 Python
Python在OpenCV里实现极坐标变换功能
Sep 02 Python
Python3 解决读取中文文件txt编码的问题
Dec 20 Python
python爬虫破解字体加密案例详解
Mar 02 Python
Python基础之常用库常用方法整理
Apr 30 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 session的传递方式
2016/06/15 PHP
PHP获取客户端及服务器端IP的封装类
2016/07/21 PHP
9行javascript代码获取QQ群成员具体实现
2013/10/16 Javascript
jquery给图片添加鼠标经过时的边框效果
2013/11/12 Javascript
jquery.ui.draggable中文文档(原文翻译)
2013/11/15 Javascript
js获取页面传来参数的方法
2014/09/06 Javascript
jQuery事件绑定和委托实例
2014/11/25 Javascript
jQuery动画与特效详解
2015/02/01 Javascript
学习JavaScript正则表达式
2015/11/13 Javascript
基于jquery实现无限级树形菜单
2016/03/22 Javascript
js原生实现FastClick事件的实例
2016/11/20 Javascript
详解Jquery EasyUI tree 的异步加载(遍历指定文件夹,根据文件夹内的文件生成tree)
2017/02/11 Javascript
jQuery弹出窗口简单实现代码
2017/03/09 Javascript
Node.js readline 逐行读取、写入文件内容的示例
2018/03/01 Javascript
vue2.0项目实现路由跳转的方法详解
2018/06/21 Javascript
vue 实现边输入边搜索功能的实例讲解
2018/09/16 Javascript
如何为你的JS项目添加智能提示与类型检查详解
2019/03/12 Javascript
5个你不知道的JavaScript字符串处理库(小结)
2020/06/01 Javascript
jquery实现拖拽小方块效果
2020/12/10 jQuery
python配置grpc环境
2019/01/01 Python
Python中断多重循环的思路总结
2019/10/04 Python
Python reversed函数及使用方法解析
2020/03/17 Python
Python restful框架接口开发实现
2020/04/13 Python
spyder 在控制台(console)执行python文件,debug python程序方式
2020/04/20 Python
Python面向对象实现方法总结
2020/08/12 Python
Ray-Ban雷朋美国官网:全球领先的太阳眼镜品牌
2016/07/20 全球购物
ZINVO手表官网:男士和女士手表
2019/03/10 全球购物
偷看我的初中毕业鉴定
2014/01/29 职场文书
党校培训自我鉴定范文
2014/04/10 职场文书
国际经济与贸易专业求职信
2014/07/10 职场文书
教师党的群众路线学习心得体会
2014/11/04 职场文书
大学生就业推荐表自我评价
2015/03/02 职场文书
pandas求平均数和中位数的方法实例
2021/08/04 Python
Python实现老照片修复之上色小技巧
2021/10/16 Python
Java工作中实用的代码优化技巧分享
2022/04/21 Java/Android
JavaScript中reduce()的用法
2022/05/11 Javascript