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字符串对其居中显示的方法
Jul 11 Python
使用rst2pdf实现将sphinx生成PDF
Jun 07 Python
python中星号变量的几种特殊用法
Sep 07 Python
python脚本作为Windows服务启动代码详解
Feb 11 Python
Django重装mysql后启动报错:No module named ‘MySQLdb’的解决方法
Apr 22 Python
python输出数组中指定元素的所有索引示例
Dec 06 Python
简单了解python filter、map、reduce的区别
Jan 14 Python
TensorFLow 不同大小图片的TFrecords存取实例
Jan 20 Python
python3用urllib抓取贴吧邮箱和QQ实例
Mar 10 Python
浅谈Selenium+Webdriver 常用的元素定位方式
Jan 13 Python
用Python生成会跳舞的美女
Jan 18 Python
PYTHON 使用 Pandas 删除某列指定值所在的行
Apr 28 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
mysql4.1以上版本连接时出现Client does not support authentication protocol问题解决办法
2007/03/15 PHP
php为什么选mysql作为数据库? Mysql 创建用户方法
2007/07/02 PHP
php 动态添加记录
2009/03/10 PHP
PHP错误抑制符(@)导致引用传参失败Bug的分析
2011/05/02 PHP
PHP无法访问远程mysql的问题分析及解决
2013/05/16 PHP
基于php导出到Excel或CSV的详解(附utf8、gbk 编码转换)
2013/06/25 PHP
PHP如何实现Unicode和Utf-8编码相互转换
2015/07/29 PHP
Yii操作数据库实现动态获取表名的方法
2016/03/29 PHP
php实现文件上传及头像预览功能
2017/01/15 PHP
PHP时间相关常用函数用法示例
2020/06/03 PHP
JavaScript 继承详解(二)
2009/07/13 Javascript
解决jQuery uploadify在非IE核心浏览器下无法上传
2015/08/05 Javascript
谈谈JavaScript中的几种借用方法
2016/08/09 Javascript
jQuery fadeOut 异步实例代码详解
2016/08/18 Javascript
request请求获取参数的实现方法(post和get两种方式)
2016/09/27 Javascript
iOS和Android用同一个二维码实现跳转下载链接的方法
2016/09/28 Javascript
微信小程序 获取设备信息 API实例详解
2016/10/02 Javascript
jQuery动态创建元素以及追加节点的实现方法
2016/10/20 Javascript
nodejs检测因特网是否断开的解决方案
2019/04/17 NodeJs
[26:40]DOTA2上海特级锦标赛A组资格赛#1 Secret VS MVP.Phx第一局
2016/02/25 DOTA
使用Python设置tmpfs来加速项目的教程
2015/04/17 Python
Python 对象中的数据类型
2017/05/13 Python
Python面向对象编程基础解析(一)
2017/10/26 Python
初探TensorFLow从文件读取图片的四种方式
2018/02/06 Python
对Python生成汉字字库文字,以及转换为文字图片的实例详解
2019/01/29 Python
Python数据类型之列表和元组的方法实例详解
2019/07/08 Python
Python使用itchat模块实现简单的微信控制电脑功能示例
2019/08/26 Python
Python阶乘求和的代码详解
2020/02/14 Python
Python中常用的高阶函数实例详解
2020/02/21 Python
Under Armour安德玛中国官网:美国高端运动科技品牌
2018/03/09 全球购物
Viking Direct爱尔兰:办公用品和家具
2019/11/21 全球购物
师范生教师实习自我鉴定
2013/09/27 职场文书
社区七一党员活动方案
2014/01/25 职场文书
劳资员岗位职责
2015/02/13 职场文书
2015财务年终工作总结范文
2015/05/22 职场文书
《有余数的除法》教学反思
2016/02/22 职场文书