接口测试 | urllib篇 18 urllib介绍

Posted 开源优测

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口测试 | urllib篇 18 urllib介绍相关的知识,希望对你有一定的参考价值。

概述

本文基于Python3分享urllib模块的源码分享,所以不要拿这python2来问我为什么找不到对应的源码。

在python3中urllib由以下几个模块构成:

  • parse

  • request

  • response

  • robotparser

  • error

下面对这个几个模块进行一一分享。

parse模块

parse模块定义了统一的接口并实现了URL解析和引用功能。

简单的理解:parse模块可以把url进行拆分或组合,下面我们看下示例:

#-*- coding:utf-8 -*-

__author__ = "苦叶子"

from
urllib.parse import urlparse

if __name__ == "__main__":    print("urllib url切割实例")    url = "http://username:password@www.baidu.com:80/q=开源优测"    result = urlparse(url)    print("看下切割后的整体结果: ")    print(result)    print("协议: ", result.scheme)    print("连接字符串:", result.netloc)    print("端口号:", result.port)    print("uri资源:", result.path)    print("用户名:", result.username)    print("密码:", result.password)

通过上述实例,我们将学会如何将url中各个属性进行切割出来。

对于parse模块其他的功能,本文就不一一演示了,请参见官网学习。

requset模块

这个模块可以说是urllib最核心的模块了,其定义了系列函数、类用于实现http/https相关协议功能。

下面我们看一个最问简单的应用实例,后续结合实际的API进行深入实例演示:

#-*- coding:utf-8 -*-

__author__ = "苦叶子"

import
urllib.request

if __name__ == "__main__":   print("读取www.python.org首页的html源码")   response = urllib.request.urlopen("http://www.python.org")   print("打印下结果")   print(response.read())

通过运行上述代码,将会在console看到一堆的html源码的输出显示。

request模块有着非常强大的功能,后续专门开辟一篇文章来分享。

response模块

response模块比较简单,其定义了http response基本出来方法,作为基类存在,大家有兴趣的可以研究下其源码,了解去编码风格及实现,有利于深入掌握如何处理http的返回值。

这里不做实例演示,因为其提供的方法、功能主要在request模块中进行了应用。

robotparser模块

robotparser模块提供了一个单独的类:robotfileparser,用于处理robot.txt文件。

至于这个文件是干嘛用的你可以访问:http://www.robotstxt.org/norobots-rfc.txt 进行了解、学习。

当你需要研究爬虫时,这个robots.txt是必须深入研究的东西。

error模块

error模块定义了url、http相关的错误基类,总共不到100行代码,很简洁,这里就不做说明了。

小结

本文简要的对urllib的组成进行了说明,后续结合实例进行演示分享,大家先通过本文了解下就好


开源优测

分享软件测试开源技术、经验、方案的首发平台

长按二维码/微信扫描 关注开源优测

苦叶子私人微信:liyimin1912

有问题,可留言或加好友进微信群

苦叶子原创文章首发平台


以上是关于接口测试 | urllib篇 18 urllib介绍的主要内容,如果未能解决你的问题,请参考以下文章

python接口测试

Python 接口测试

[Python3]HTTP处理 - urllib模块

Python爬虫开发第1篇urllib2

python-接口测试(思路)

让http服务人类(python之requests做接口测试)