代码之家  ›  专栏  ›  技术社区  ›  jahmax

Python urllib与httplib?

  •  52
  • jahmax  · 技术社区  · 14 年前

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

    有什么区别?

    我想我已经准备好urllib使用httplib了,我正计划制作一个需要进行http请求的应用程序,到目前为止,我只在python中使用httplib.HTTPConnection进行请求,在阅读关于urllib的文章时,我发现我也可以将其用于请求,那么这两者的好处是什么呢?

    6 回复  |  直到 14 年前
        1
  •  46
  •   Robus    14 年前

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

        2
  •  18
  •   Community CDub    4 年前

    我想谈谈 urllib , urllib2 httplib httplib2 .

    urllib* httplib* 那是:

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

    urllib和urllib2是基于httplib构建的,它们更为抽象和强大,但有时无法满足您对某些HTTP相关操作的特定需求。

    httplib2程序 HTTP client library httplib2程序 .

    URL库 ,引用自 this link

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

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

    希望如此helps:-)

        3
  •  10
  •   Corey Goldberg    14 年前

    urllib/urllib2构建在httplib之上。它提供了比直接写入httplib更多的特性。

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

        4
  •  6
  •   Matt Joiner    14 年前

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

        5
  •  5
  •   Cees Timmerman    10 年前
        6
  •  1
  •   Cometsong jdehaan    9 年前

    对于那些将东西升级到Py3的人来说(由于某些原因不能或者没有重构以使用awesome) requests 模块),这是一个很好的版本转换:

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

    在两个Python版本集中都适用。