191145692 发表于 2018-8-15 11:52:52

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, 使用更简洁方便
  对于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, 但不够通用
页: [1]
查看完整版本: python中几个网络请求库的区别