python2.X 有这些库名可用: urllib, urllib2, urllib3, httplib, httplib2, requests
python3.X 有这些库名可用: urllib, urllib3, httplib2, requests
两者都有的urllib3和requests, 它们不是标准库. urllib3 提供线程安全连接池和文件post支持,与urllib及urllib2的关系不大. requests 自称HTTP for Humans, 使用更简洁方便
对于python2.X:
urllib和urllib2的主要区别:
1. urllib2可以接受Request对象为URL设置头信息,修改用户代理,设置cookie等, urllib只能接受一个普通的URL.
2. urllib提供一些比较原始基础的方法而urllib2没有这些, 比如 urlencode
httplib 和 httplib2
httplib 是http客户端协议的实现,通常不直接使用, urllib是以httplib为基础
httplib2 是第三方库, 比httplib有更多特性
httplib比较底层,一般使用的话用urllib和urllib2即可
对于python3.X:
这里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()
python2.X中的httplib被重命名为 http.client
使用 2to3 工具转换源码时, 会自动处理这几个库的导入
总的来说, 使用python3, 记住只有urllib, 想要更简洁好用就用requests, 但不够通用