前言

该文章主要说明Python3 标准库urllib的使用。

修改时间:20191216

修改时间:20191217

修改时间:20191218

添加urllib.parse.urlencode,urllib.request.Request方法解释

天象独行

0X01;urllib作用是什么?

  urllib是Python3的一个内置标准库,主要用来进行http请求。其中主要包含四个常见模块。分别是:request,error,parse,robotparser。request模块功能提供一个基本的请求功能,来模拟http请求。error异常处理模块,主要功能是在出现错误的时候可以捕获异常。parse工具模块,提供了URL处理的方法,比如:拆分,解析,合并等。robotparser模块主要用来识别网站的robots.txt文件。

0X02;urllib.request模块

  urllib.request模块当中常见使用方法有:

  A;urlopen(url,data,timeout) 作用打开一个url方法,返回一个文件对象HttpResponse,然后可以进行类似文件对象的操作。

例如:基本使用方法。

  B;urllib.request.urlretrieve(url,filename=None,reporthook=None,data=None)作用下载定制的url内容到本地。

  url:外部或者本地url。

  filename:指定了保存到本地的路径(如果未指定该参数,urllib会生成一个临时文件来保存数据)。

  reporthook:是一个回调函数,当连接上服务器,以及相应的数据块传输完毕的时候会触发该回调

  data:指post到服务器的数据。该方法返回一个包含两个元素的元组(filename,headers),filename表示保存到本地的路径,header表示服务器的响应头。

  基本使用:

  C;Request()方法作用是发送一个请求,常见操作是构建HTTP请求。

举例:构建请求头:

0X03;urllib.error模块

  urllib.error模块作用是可以接收urllib.request产生的异常。其中包含了两个方法。即URLError,HTTPError。

  A;URLError举例

  B;HTTPError举例:

0X04;urllib.parse模块

  A;urlparse()方法作用:将URL分解为六个组件分别是:协议,位置,路径,参数,查询,片段

举例:

  B;urlsplit方法类似于urlparse,区别在于urlsplit没有返回“params”

  C;urlunparse(parts)方法作用,从urlparse()返回的元组元素构造一个URL。

举例:

  D;urlunsplit方法与urlunparse类似。

  E;parse_qs和parse_qsl

  urllib.parse.parse_qs返回字典

  urllib.parse.parse_qsl返回列表

举例:

  F;urljoin(base,url,allow_fragments=True)作用组合两个URL.。注释:url一定需要完整的url。

举例:

  G;quout()方法,作用URL编码

  H;unquote()方法作用url解码

举例:

  

  I;urlencode(data)作用针对一个字典data,将字典编码处理并且拼接为query_string。

举例:

0X0X;补充说明:

  A;HttpRequest类是一个封闭HTTP提交信息的类型,而封闭HTTP输出信息的类型就是HttpResponse类,使用HttpResponse类可以实现三种类型的输出,即文本,URL,二进制流.HTTPResposne 类型的对象,它主要包含的方法有 read()、readinto(),getheader(name)、getheaders()、fileno() 等方法和 msg、version、status、reason、debuglevel、closed 等属性。

  read() 读取相应内容,内容是字节类型

  geturl() 获取请求url

  getheaders() 获取请求头信息,列表里面有元组

  getcode() 获取状态码

  readlines() 按行读取,返回列表,都是字节类型

详情参考下面链接:https://www.iteye.com/blog/guoying252166655-2041373

  B;try...except 在程序出现异常处理是使用。格式 try: 执行代码 except:发生异常时执行的代码。详情参考下面链接:https://www.runoob.com/python3/python3-errors-execptions.html

  C;__main__是Python的内置变量,用于代指当前模块。详细参考下面链接:https://www.cnblogs.com/chenhuabin/p/10118199.html

  D;字典是另一种可变容器模型,且可存储任意类型的对象。

  E;列表是最常见的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。

Python3---标准库---urllib的更多相关文章

  1. Python3 标准库

    Python3标准库 更详尽:http://blog.csdn.net/jurbo/article/details/52334345 文本 string:通用字符串操作 re:正则表达式操作 diff ...

  2. python023 Python3 标准库概览

    Python3 标准库概览 操作系统接口 os模块提供了不少与操作系统相关联的函数. >>> import os >>> os.getcwd() # 返回当前的工作 ...

  3. python3标准库总结

    Python3标准库 操作系统接口 os模块提供了不少与操作系统相关联的函数. ? 1 2 3 4 5 6 >>> import os >>> os.getcwd( ...

  4. 8.Python3标准库--数据持久存储与交换

    ''' 持久存储数据以便长期使用包括两个方面:在对象的内存中表示和存储格式之间来回转换数据,以及处理转换后数据的存储区. 标准库包含很多模块可以处理不同情况下的这两个方面 有两个模块可以将对象转换为一 ...

  5. 7.Python3标准库--文件系统

    ''' Python的标准库中包含大量工具,可以处理文件系统中的文件,构造和解析文件名,还可以检查文件内容. 处理文件的第一步是要确定处理的文件的名字.Python将文件名表示为简单的字符串,另外还提 ...

  6. 1.Python3标准库--前戏

    Python有一个很大的优势便是在于其拥有丰富的第三方库,可以解决很多很多问题.其实Python的标准库也是非常丰富的,今后我将介绍一下Python的标准库. 这个教程使用的书籍就叫做<Pyth ...

  7. 比较两个文件的异同Python3 标准库difflib 实现

    比较两个文件的异同Python3 标准库difflib 实现 对于要比较两个文件特别是配置文件的差异,这种需求很常见,如果用眼睛看,真是眼睛疼. 可以使用linux命令行工具diff a_file b ...

  8. 3.Python3标准库--数据结构

    (一)enum:枚举类型 import enum ''' enum模块定义了一个提供迭代和比较功能的枚举类型.可以用这个为值创建明确定义的符号,而不是使用字面量整数或字符串 ''' 1.创建枚举 im ...

  9. 9.Python3标准库--数据压缩与归档

    ''' 尽管现代计算机系统的存储能力日益增长,但生成数据的增长是永无休止的. 无损(lossless)压缩算法以压缩或解压缩数据花费的时间来换取存储数据所需要的空间,以弥补存储能力的不足. Pytho ...

  10. python系列十七:Python3 标准库概览

    #!/usr/bin/python #-*-coding:gbk-*- #Python3 标准库概览'''操作系统接口os模块提供了不少与操作系统相关联的函数.建议使用 "import os ...

随机推荐

  1. ASP.NET Core知多少(13):路由重写及重定向

    背景 在做微信公众号的改版工作,之前的业务逻辑全塞在一个控制器中,现需要将其按厂家拆分,但要求入口不变. 拆分很简单,定义控制器基类,添加公用虚方法并实现,各个厂家按需重载. 但如何根据统一的入口参数 ...

  2. Caffe源码-Layer类

    Layer类简介 Layer是caffe中搭建网络的基本单元,caffe代码中包含大量Layer基类派生出来的各种各样的层,各自通过虚函数 Forward() 和 Backward() 实现自己的功能 ...

  3. [ASP.NET Core 3框架揭秘] 跨平台开发体验: Windows [下篇]

    由于ASP.NET Core框架在本质上就是由服务器和中间件构建的消息处理管道,所以在它上面构建的应用开发框架都是建立在某种类型的中间件上,整个ASP.NET Core MVC开发框架就是建立在用来实 ...

  4. 百度大脑UNIT3.0智能对话技术全面解析

    智能客服.智能家居.智能助手.智能车机.智能政务……赋予产品智能对话能力是提升产品智能化体验.高效服务的重要手段,已经开始被越来越多的企业关注并布局.然而,智能对话系统搭建涉及NLP.知识图谱.语音等 ...

  5. Sqlite—锁机制

    https://blog.csdn.net/zhangsheng_1992/article/details/52598396 https://blog.csdn.net/xiyangyang8110/ ...

  6. Linux Ipsec

    准备环境 1 主机ip:192.168.0.107 2 VPN服务器: ens32:192.168.0.102 ens33:127.16.1.10 环境测试 modprobe ppp-compress ...

  7. Java用广度优先搜索快速搜索文件

    背景 在开发的过程中,经常需要在文件系统里按某些条件搜索文件,比如音乐播放器扫描音乐,而搜索文件,大多人喜欢用递归的方式,而这也是最容易想到的方式.递归方式如果文件夹很深就容易造成栈溢出,而且不断的压 ...

  8. 2019 Vue开发指南:你都需要学点啥?

    转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者.原文出处:https://dzone.com/articles/vue-development-in-2019 ...

  9. 【原创】flash中DataGrid数据列显示顺序的解决办法(非数据排序)

    今天在用flash做一个简单的地图展示功能,需要把xml绑定到DataGrid,完成后,又仔细看了几遍,发现列的顺序不对,准确的说是不稳定,不固定,于是在网上查了一下,没有相关的内容.于是自己研究了一 ...

  10. echarts 部分美化配置项使用记录

    一.图表背景色配置项,如背景颜色渐变 https://www.echartsjs.com/zh/option.html#backgroundColor 二.图表中图形的颜色,如柱状图行采用渐变颜色显示 ...