zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Python库urllib与urllib2主要区别分析

Python 分析 区别 主要 urllib urllib2
2023-06-13 09:15:37 时间

作为一个Python菜鸟,之前一直懵懂于urllib和urllib2,以为2是1的升级版。今天看到老外写的一篇《Python:differencebetweenurllibandurllib2》才明白其中的区别

YoumightbeintriguedbytheexistenceoftwoseparateURLmodulesinPython-urllibandurllib2.Evenmoreintriguing:theyarenotalternativesforeachother.Sowhatisthedifferencebetweenurllibandurllib2,anddoweneedthemboth?

你可能对于Python中两个独立存在的-urllib2和-urllib2感到好奇。更有趣的是:它们并不是可以相互代替的。那么这两个模块间的区别是什么,并且这两个我们都需要吗?

urlliband urllib2arebothPythonmodulesthatdoURLrequestrelatedstuffbutofferdifferentfunctionalities.Theirtwomostsignificantdifferencesarelistedbelow:

urllib和urllib2都是接受URL请求的相关模块,但是提供了不同的功能。两个最显著的不同如下:

•urllib2canacceptaRequestobjecttosettheheadersforaURLrequest,urllibacceptsonlyaURL.Thatmeans,youcannotmasqueradeyourUserAgentstringetc.

urllib2可以接受一个Request类的实例来设置URL请求的headers,urllib仅可以接受URL。这意味着,你不可以伪装你的UserAgent字符串等。

•urllibprovidestheurlencodemethodwhichisusedforthegenerationofGETquerystrings,urllib2doesn"thavesuchafunction.Thisisoneofthereasonswhyurllibisoftenusedalongwithurllib2.

urllib提供urlencode方法用来GET查询字符串的产生,而urllib2没有。这是为何urllib常和urllib2一起使用的原因。 

 Forotherdifferencesbetweenurllibandurllib2refertotheirdocumentations,thelinksaregivenintheReferencessection.
Tip:ifyouareplanningtodoHTTPstuffonly,checkouthttplib2,itismuchbetterthanhttpliborurlliborurllib2.

提示:如果你仅做HTTP相关的,看一下httplib2,比其他几个模块好用。

相关资料

这里还有个类似的问答:urlliburllib2whatisthedifference?

stackoverflow上也有:ShouldIuseurlliborurllib2?

PythonDocs

  1. urllib
  2. urllib2