1 urllib.parse

urllib 库中包含有如下内容

Package contents

error

parse

request

response

robotparser

其中urllib.parse主要是用来解析URL(统一资源定位器)的。

urllib.parse模块定义了一个标准接口,将统一资源定位器URL字符串拆分为诸如addressing scheme、网址、路径等组件;该模块也可以将相对URL(relative URL)转换为给定的基URL(base URL)的绝对URL(absolute URL)。

urllib.parse被设计成在相对统一资源定位器(relative uniform resource locators)上与互联网RFC相匹配,它支持的URL schemes(URL协议)如下:

file、 ftp、gopher、hdl、http、 https、imap、 mailto、 mms、news、nntp、 prospero、rsync、rtsp、 rtspu、 sftp、 shttp、 sip、 sips、 snews、svn、svn+ssh、 telnet、 wais、 ws、wss。

Python中的urllib.parse模块提供的方法可以分为两种:

网址解析(URL parsing):将URL字符串拆分为其组件

网址引用(URL quoting):将URL组建组合到URL字符串中

2 网址解析(URL parsing)

2.1 urlparse

urlparse(url, scheme='', allow_fragments=True)

将URL解析成6部分,分别是

协议(scheme)

域名(netloc)

路径(path)

路径参数(params)

查询参数(query)

片段(fragment)

备注:

这 6 项也是ParseResult对象的方法ParseResult(scheme, netloc, path, params, query, fragment),A 6-tuple that contains components of a parsed URL.

这六项数据描述符(Data descriptors inherited from ParseResult:)

from urllib import parse

urlp = parse.urlparse('https://www.icourse163.org/search.htm?search=%E7%AE%97%E6%B3%95#type=10&orderBy=0&pageIndex=1')
print(urlp)
print(urlp.scheme)
print(urlp.path)

运行

ParseResult(scheme='https', netloc='www.icourse163.org', path='/search.htm', params='', query='search=%E7%AE%97%E6%B3%95', fragment='type=10&orderBy=0&pageIndex=1')
https
/search.htm

2.2 urlunparse

定义:  urlunparse(components)

参数:URL的六项元素

功能:再次将解析的URL重新组合在一起。

注意:该部分参数可以是

python学习笔记——urllib库中的parse的更多相关文章

  1. 爬虫学习笔记-urllib库

    urllib库是python中一个最基本的网络请求库.可以模拟浏览器的行为,向指定的服务器发送一个请求,并可以保存服务器返回的数据. urlopen函数:在python3的urllib库中,所有和网络 ...

  2. Python学习笔记-PuLP库(3)线性规划实例

    本节以一个实际数学建模案例,讲解 PuLP 求解线性规划问题的建模与编程. 1.问题描述 某厂生产甲乙两种饮料,每百箱甲饮料需用原料6千克.工人10名,获利10万元:每百箱乙饮料需用原料5千克.工人2 ...

  3. python学习笔记013——模块中的私有属性

    1 私有属性的使用方式 在python中,没有类似private之类的关键字来声明私有方法或属性.若要声明其私有属性,语法规则为: 属性前加双下划线,属性后不加(双)下划线,如将属性name私有化,则 ...

  4. [Python学习笔记] turtle库的基本使用

    turtle库常用函数 引入turtle模块 import turtle turtle的绘图窗体 #setup()设置窗口大小及位置#setup()可省略turtle.setup(width,heig ...

  5. python学习笔记——提取网页中的信息正则表达式re

    被用来检索\替换那些符合某个模式(规则)的文本,对于文本过滤或规则匹配,最强大的就是正则表达式,是python爬虫里必不可少的神兵利器. 1 正则表达式re基本规则 [0-9] 任意一个数字,等价\d ...

  6. Python学习笔记020——数据库中的数据类型

    1 数值类型 数值类型分为有符号signed和无符号unsigned两种. 1.1 整型 int (1)bigint 极大整型(8个字节) 范围 :-2**64 ~ 2**64 - 1 -922337 ...

  7. python学习笔记(excel中处理日期格式)

    涉及到处理excel文件中日期格式数据 这里自己整理下 两种方法 代码如下: @classmethod def get_time(cls, table, nrows): testtime = [] f ...

  8. Python学习笔记——Matplot库

    https://www.cnblogs.com/laoniubile/p/5893286.html  一.基本指令 import matplotlib.pyplot as plt plt.figure ...

  9. python学习笔记 改变字符串中的某一位

    a = ' a = list(a) a[2] = ' news = ''.join(a) print news,a 注意不能使用 news = '' news.join(a) 因为news.join只 ...

随机推荐

  1. php 传变量到 js 文件

    php 传变量到 js 文件 // 传变量到js $oncj="taocanonc(".$i.",".$alli.",".$row1[mon ...

  2. HDU 4059 The Boss on Mars(容斥原理 + 四次方求和)

    传送门 The Boss on Mars Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  3. 小议IE10下的DrawToBitmap方法

    在完成博文“PS网页设计教程XXIV——从头设计一个漂亮的网站”后. 出于习惯,打开之前“利用Webbrowser类实现超长网页的截屏的实现(解决报错不能截取的难题)”中的代码的程序,截取博文作为资料 ...

  4. Android 演示 DownloadManager——Android 下载 apk 包并安装

    本文内容 环境 项目结构 演示下载 参考资料 本文是 github 上 Trinea-Android-common 和 Trinea-Android-Demo 项目的一部分,将下载部分分离出来,看看如 ...

  5. C#.NET常见问题(FAQ)-如何把定义存放类实例的数组

    数组存放的可以是普通的int,double,string类型,也可以是自定义的类的实例   如果数组长度未知,可以用list对象存放   更多教学视频和资料下载,欢迎关注以下信息: 我的优酷空间: h ...

  6. thinkphp3错误:syntax error, unexpected 'list' (T_LIST), expecting identifier (T_STRING)

    syntax error, unexpected 'list' (T_LIST), expecting identifier (T_STRING) 出现这个错误的原因是,list是php的一个函数,系 ...

  7. 原生DOM操作

    注入jQuery var node=document.createElement("script"); node.setAttribute('src','http://common ...

  8. Axis 发布、调用WebService(转)

    一.JWS方法发布WebService 1.在官方网站下载axis的工程(这个等下就有用的)和源码.jar包等,下载地址是: http://www.apache.org/dyn/closer.cgi/ ...

  9. css 禁止录入中文

      1.情景展示 如何禁止输入框,输入中文字符? 2.解决方案 IE浏览器,可以使用ime-mode来实现 UpdateTime--2016年12月15日19:52:16 /*屏蔽输入法,可以用来禁止 ...

  10. VTK三维点集轮廓凸包提取

    碰撞检测问题在虚拟现实.计算机辅助设计与制造.游戏及机器人等领域有着广泛的应用,甚至成为关键技术.而包围盒算法是进行碰撞干涉初步检测的重要方法之一.包围盒算法是一种求解离散点集最优包围空间的方法.基本 ...