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中使用Queue和Condition进行线程同步的方法
Jan 19 Python
python socket多线程通讯实例分析(聊天室)
Apr 06 Python
Flask框架信号用法实例分析
Jul 24 Python
python调用摄像头显示图像的实例
Aug 03 Python
对python中词典的values值的修改或新增KEY详解
Jan 20 Python
python Django 创建应用过程图示详解
Jul 29 Python
pyqt5、qtdesigner安装和环境设置教程
Sep 25 Python
python 成功引入包但无法正常调用的解决
Mar 09 Python
Python接口自动化测试的实现
Aug 28 Python
scrapy redis配置文件setting参数详解
Nov 18 Python
Pyhton爬虫知识之正则表达式详解
Apr 01 Python
Python经常使用的一些内置函数
Apr 11 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之变量、常量学习笔记
2008/03/27 PHP
PHP中使用unset销毁变量并内存释放问题
2012/07/05 PHP
PHP采用XML-RPC构造Web Service实例教程
2014/07/16 PHP
php检查字符串中是否有外链的方法
2015/07/29 PHP
php 输出json及显示json中的中文汉字详解及实例
2016/11/09 PHP
三级下拉菜单的js实现代码
2011/05/23 Javascript
JS面向对象编程浅析
2011/08/28 Javascript
修改jQuery Validation里默认的验证方法
2012/02/14 Javascript
jQuery之按钮组件的深入解析
2013/06/19 Javascript
JavaScript+html5 canvas实现本地截图教程
2020/04/16 Javascript
jQuery each函数源码分析
2016/05/25 Javascript
JS简单实现禁止访问某个页面的方法
2016/09/13 Javascript
将input框中输入内容显示在相应的div中【三种方法可选】
2017/05/08 Javascript
JavaScript表单即时验证 验证不成功不能提交
2017/08/31 Javascript
JavaScript中的高级函数
2018/01/04 Javascript
JavaScript仿京东秒杀倒计时
2020/03/17 Javascript
jquery实现手风琴案例
2020/05/04 jQuery
微信小程序实现选项卡滑动切换
2020/10/22 Javascript
[01:36]DOTA2完美大师赛趣味视频之与队友相处的十万个技巧
2017/11/19 DOTA
在Python中使用zlib模块进行数据压缩的教程
2015/06/26 Python
vscode 远程调试python的方法
2017/12/01 Python
python 实现A*算法的示例代码
2018/08/13 Python
python3 实现验证码图片切割的方法
2018/12/07 Python
Python3安装pip工具的详细步骤
2019/10/14 Python
tensorflow tf.train.batch之数据批量读取方式
2020/01/20 Python
高品质和独特的产品世界:Creations and Collections
2018/01/07 全球购物
MAC彩妆英国官网:M·A·C UK
2018/05/30 全球购物
俄罗斯电动工具和设备购物网站:Vseinstrumenti.ru
2020/11/12 全球购物
数据库设计的包括哪两种,请分别进行说明
2016/07/15 面试题
汽车促销活动方案
2014/03/31 职场文书
爱护草坪标语
2014/06/24 职场文书
周一早安温馨问候祝福语!
2019/07/15 职场文书
范文之农村基层党建工作报告
2019/10/24 职场文书
python opencv通过4坐标剪裁图片
2021/06/05 Python
Web应用开发TypeScript使用详解
2022/05/25 Javascript
MySQL主从切换的超详细步骤
2022/06/28 MySQL