前言
前面我们使用过fiddler、postman等工具完成请求的发送,那么在python中如何实现呢?在python中urllib是发送请求最基本的库,且为python的内置库,该库只需要关注请求的链接,参数,提供了强大的解析。在Python2中主要为urllib和urllib2,在Python3中整合成了urllib。而urllib3则是增加了连接池等功能,两者互相都有补充的部分。
urllib、urllib2、urllib3用法及区别
Python2.x有这些库名可用: urllib,urllib2,urllib3,httplib,httplib2,requests。
Python3.x 有这些库名可用: urllib,urllib3,httplib2,requests。
若只使用Python3.x,记住有个urllib的库就行了。Pyhton2.x和Python3.x都有urllib3和requests, 它们不是标准库。urllib3提供线程安全连接池和文件post等支持,与urllib及urllib2的关系不大。requests 自称HTTP for Humans,使用更简洁方便。
Python3.x中将urllib2合并到了urllib,之后此包分成了以下几个模块:
-
urllib.request 用于打开和读取URL
-
urllib.error 用于处理前面request引起的异常
-
urllib.parse 用于解析URL
-
urllib.robotparser用于解析robots.txt文件
Python3.x中,随着urllib2合入urllib,一些常用的方法也发生了变化:
-
在Python2.x中使用import urlparse
在Python3.x中会使用import urllib.parse
-
在Python2.x中使用urllib2.urlopen或urllib.urlopen(已弃用)
在Python3.x中会使用urllib.request.urlopen
-
在Python2.x中使用urllib2.Request