Python urllib 与 httplib 的区别?

57 投票
6 回答
44735 浏览
提问于 2025-04-16 01:40

什么时候应该使用httplib,什么时候又该用urllib呢?

它们有什么不同呢?

我觉得我看到过urllib是用httplib来实现的。我打算做一个需要发送HTTP请求的应用,到目前为止我在Python中只用过httplib.HTTPConnection来发送请求。而在了解urllib的时候,我发现我也可以用它来发送请求。那么,使用这两者有什么好处呢?

6 个回答

10

urllib和urllib2是建立在httplib基础上的。它们提供了比直接使用httplib更多的功能。

不过,使用httplib可以让你对底层连接有更细致的控制。

19

我想说说 urlliburllib2httplibhttplib2 这几个东西。

它们之间的主要区别在于:

httplib 和 httplib2 直接处理 HTTP/HTTPS 的请求和响应,给你更多的空间去做自己的事情。

而 urllib 和 urllib2 是建立在 httplib 之上的,它们更抽象、更强大,但有时候可能无法满足你对某些 HTTP 相关操作的特定需求。

至于 httplibhttplib2,我觉得它们都是 HTTP 客户端库。不过 httplib2httplib 更强大,功能也更多。

关于 urlliburllib2,引用自 这个链接

urllib 和 urllib2 都是处理 URL 请求的 Python 模块,但它们提供的功能不同。它们之间最显著的两个区别如下:

  • urllib2 可以接受一个请求对象来设置 URL 请求的头信息,而 urllib 只接受一个 URL。这意味着你不能伪装你的用户代理字符串等。
  • urllib 提供了 urlencode 方法,用于生成 GET 查询字符串,而 urllib2 没有这样的功能。这也是为什么 urllib 常常和 urllib2 一起使用的原因之一。

我推荐你看看我的个人博客 Httplib Httplib2 Urllib Urllib2-what’s the Difference

希望对你有帮助:-)

48

urllib(特别是urllib2)默认处理了很多事情,或者有合适的库来完成这些事情。比如说,urllib2会自动跟随重定向,你还可以用cookiejar来处理登录脚本。如果你用的是httplib,这些功能你都得自己编写代码来实现。

撰写回答