什么时候有人会使用 httplib,什么时候会使用 urllib?
有什么区别?
我想我已经准备好 urllib 使用 httplib,我正计划制作一个需要发出 http 请求的应用程序,到目前为止我只在 python 中使用 httplib.HTTPConnection 来处理请求,并且阅读了关于 urllib 的信息,我发现我也可以将它用于请求,那么其中一个有什么好处呢?
urllib(特别是 urllib2)默认处理很多事情,或者有适当的库来处理。例如,urllib2 将自动跟随重定向,您可以使用 cookiejar 来处理登录脚本。如果您使用 httplib,这些都是您必须自己编写的代码。
我想说一些关于urllib
,urllib2
和httplib
的事情httplib2
。
urllib*
和之间的主要区别在于httplib*
:
httplib 和 httplib2 直接处理 HTTP/HTTPS 请求和响应,并为您提供更多空间来完成自己的工作。
urllib 和 urllib2 建立在 httplib 之上,它们更加抽象和强大,但有时无法满足您对某些 HTTP 相关操作的指定需求。
对于httplib
and httplib2
,我会说它们都是HTTP client library
。然而httplib2
,它比httplib
.
至于urllib
and ,请从此链接urllib2
引用:
urllib 和 urllib2 都是 Python 模块,它们执行 URL 请求相关的东西,但提供不同的功能。下面列出了它们最显着的两个区别:
- urllib2 可以接受一个 Request 对象来设置 URL 请求的标头, urllib 只接受一个 URL。这意味着,您不能伪装您的用户代理字符串等。
- urllib 提供了用于生成 GET 查询字符串的 urlencode 方法,而 urllib2 没有这样的功能。这也是为什么 urllib 经常与 urllib2 一起使用的原因之一。
我会推荐我的个人博客Httplib Httplib2 Urllib Urllib2-what's the Difference。
希望能帮助到你:-)
urllib/urllib2 建立在 httplib 之上。它提供了比直接写入 httplib 更多的功能。
但是,httplib 可以让您更好地控制底层连接。
如果您只处理 http/https 并且需要访问特定于 HTTP 的内容,请使用 httplib。
对于所有其他情况,请使用 urllib2。
如果您需要缓存、保持活动、压缩或身份验证等高级内容,请尝试httplib2
对于那些将东西升级到 Py3 的人(并且由于某种原因不能或没有重构以使用很棒的requests模块),这是版本之间的一个很好的过渡:
try:
import http.client as httplib
except ImportError:
import httplib
适用于两个 Python 版本集。