前言

该文章主要说明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数据类型,它可以作为一个方括号内的逗号分隔值出现。

最新文章

  1. HDU1717小数化分数2
  2. 文件处理函数fopen、fread、fseek、fclose的使用实例介绍
  3. 《C++Primer》复习——with C++11 [1]
  4. s3cmd的安装与配置
  5. 基于AFNetworking3.0网络封装
  6. linux加入windows域之完美方案(转载)
  7. 3301: [USACO2011 Feb] Cow Line
  8. Scrapy爬虫框架补充内容三(代理及其基本原理介绍)
  9. 好几个div(元素)找到最后一个
  10. day 8 - 1 文件操作
  11. Python数据分析与挖掘常用模块
  12. 【API】恶意样本分析手册——API函数篇
  13. vue2.0 实现click点击当前li,动态切换class
  14. 课程一(Neural Networks and Deep Learning),第一周(Introduction to Deep Learning)—— 0、学习目标
  15. Gviz
  16. 设计多选按钮ListChooseView
  17. lr参数化取值与连接数据库
  18. Gumbel-Softmax Trick和Gumbel分布
  19. Spark 快速理解
  20. SaltStack系列(二)之常用模块

热门文章

  1. LINUX网络传输的序列化和反序列化C++
  2. df,dh 命令
  3. VS删除代码中没用的空白行
  4. NET Framework项目移植到NET Core上遇到的一系列坑(2)
  5. 线程提供了一个方法:void join() ,join可以协调线程之间的同步运行。
  6. JS---封装缓动(变速)动画函数---增加任意一个属性
  7. jTopo HTML5 Canvas 画图组件
  8. 爬取b站互动视频信息
  9. UML简单介绍—类图这么看就懂了
  10. 控制台提示“Invalid string length”的原因