python 网络库
python2.X 有这些库名可用: urllib, urllib2, urllib3, httplib, httplib2, requests
python3.X 有这些库名可用: urllib, urllib3, httplib2, requests
两者都有的 urllib3 和 requests,它们不是标准库。urllib3 提供线程安全连接池和文件 post支持,与 urllib 及 urllib2 的关系不大。requests 自称 HTTP for Humans,使用更简洁方便,但不够通用。
For python 2.x
urllib和urllib2的主要区别:
- urllib2可以接受Request对象为URL设置头信息,修改用户代理,设置cookie等,urllib只能接受一个普通的URL。
- urllib提供一些比较原始基础的方法而urllib2没有这些,比如 urlencode。
httplib 和 httplib2
httplib 是http客户端协议的实现,通常不直接使用,urllib是以httplib为基础的。
httplib2 是第三方库,比httplib有更多特性
httplib 比较底层,一般使用的话用urllib和urllib2即可
For python 3.x
在python3中,urllib成了一个包,此包分成了几个模块
urllib.request # 用于打开和读取URL,
urllib.error # 用于处理前面request引起的异常,
urllib.parse # 用于解析URL,
urllib.robotparser # 用于解析robots.txt文件
python2.X 中的 urllib.urlopen()被废弃,urllib2.urlopen()相当于python3.X中的urllib.request.urlopen()。