首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
28 篇文章
1
一篇文章让你入门API测试
2
[接口测试 - 基础篇] 01 你应该了解的协议基础
3
[接口测试 - 基础篇] 02 你应该掌握的Python3接口测试内功
4
[接口测试 - 基础篇] 03 unittest测试框架了解多少才够?
5
[接口测试 - 基础篇] 04 无法绕过的json解析
6
[接口测试 - 基础篇] 05 好讨厌的xml解析
7
[接口测试 - 基础篇] 06 好吧也来解析下html
8
[接口测试 - 基础篇] 07 来来来,一起读写excel玩玩之一
9
[接口测试 - 基础篇] 08 封装个基本的excel解析类
10
[接口测试 - 基础篇] 09 其实吧,读写csv格式也是要掌握的
11
[接口测试 - 基础篇] 10 别啊,还有INI格式呢,别忘记我
12
[接口测试 - 基础篇] 11 掌握下python解析YAML格式也是需要的
13
[接口测试 - 基础篇] 12 还是要掌握python日志管理模块的
14
[接口测试 - 基础篇] 13 写在接口测试基础篇完结时
15
[接口测试 - http.client篇] 14 源码初探及其工作机制分析
16
[接口测试 - http.client篇] 15 常用API说明及基本的示例
17
[接口测试 - http.client篇] 16 基于http.client之POM实战一下
18
[接口测试 - http.client篇] 17 http.client之入门级接口测试框架
19
接口测试 | urllib篇 18 urllib介绍
20
接口测试 | urllib篇 19 urllib基本示例
21
[接口测试 -基础篇] 20 用flask写一个简单server用于接口测试
22
接口测试 | 21 基于flask弄个restful API服务出来
23
接口测试 | 22 requests基础入门
24
接口测试 23 requests基础入门二
25
接口测试 | 24 requests + unittest集成你的接口测试
26
接口测试 | 25 requests + pytest测试实例
27
接口测试 | 26 基础及简要验证清单
28
接口测试 | 27 HTTP接口详细验证清单

接口测试 | urllib篇 18 urllib介绍

概述

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

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

  • parse
  • request
  • response
  • robotparser
  • error

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

parse模块

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

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

代码语言:javascript
复制
#-*- 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进行深入实例演示:

代码语言:javascript
复制
#-*- 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的组成进行了说明,后续结合实例进行演示分享,大家先通过本文了解下就好

下一篇
举报
领券