56

什么时候有人会使用 httplib,什么时候会使用 urllib?

有什么区别?

我想我已经准备好 urllib 使用 httplib,我正计划制作一个需要发出 http 请求的应用程序,到目前为止我只在 python 中使用 httplib.HTTPConnection 来处理请求,并且阅读了关于 urllib 的信息,我发现我也可以将它用于请求,那么其中一个有什么好处呢?

4

6 回答 6

46

urllib(特别是 urllib2)默认处理很多事情,或者有适当的库来处理。例如,urllib2 将自动跟随重定向,您可以使用 cookiejar 来处理登录脚本。如果您使用 httplib,这些都是您必须自己编写的代码。

于 2010-07-22T02:00:58.197 回答
18

我想说一些关于urllib,urllib2httplib的事情httplib2

urllib*和之间的主要区别在于httplib*

httplib 和 httplib2 直接处理 HTTP/HTTPS 请求和响应,并为您提供更多空间来完成自己的工作。

urllib 和 urllib2 建立在 httplib 之上,它们更加抽象和强大,但有时无法满足您对某些 HTTP 相关操作的指定需求。

对于httpliband httplib2,我会说它们都是HTTP client library。然而httplib2,它比httplib.

至于urlliband ,请从此链接urllib2引用:

urllib 和 urllib2 都是 Python 模块,它们执行 URL 请求相关的东西,但提供不同的功能。下面列出了它们最显着的两个区别:

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

我会推荐我的个人博客Httplib Httplib2 Urllib Urllib2-what's the Difference

希望能帮助到你:-)

于 2013-11-14T09:10:17.030 回答
10

urllib/urllib2 建立在 httplib 之上。它提供了比直接写入 httplib 更多的功能。

但是,httplib 可以让您更好地控制底层连接。

于 2010-07-22T03:06:10.507 回答
6

如果您只处理 http/https 并且需要访问特定于 HTTP 的内容,请使用 httplib。

对于所有其他情况,请使用 urllib2。

于 2010-07-22T02:22:20.817 回答
5

如果您需要缓存、保持活动、压缩或身份验证等高级内容,请尝试httplib2

于 2010-07-22T06:20:40.473 回答
1

对于那些将东西升级到 Py3 的人(并且由于某种原因不能或没有重构以使用很棒的requests模块),这是版本之间的一个很好的过渡:

try:
    import http.client as httplib
except ImportError:
    import httplib

适用于两个 Python 版本集。

于 2015-11-20T13:50:57.680 回答