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