urllib模块和urllib2模块的区别

 我来答
从哲妍8H
2020-04-29 · TA获得超过222个赞
知道答主
回答量:408
采纳率:0%
帮助的人:28.7万
展开全部
  • urllib2可以接受一个Request类的实例来设置URL请求的headers,urllib仅可以接受URL。这意味着,你不可以通过urllib模块伪装你的User Agent字符串等(伪装浏览器)。

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

  • urllib2模块比较优势的地方是urlliburllib2.urlopen可以接受Request对象作为参数,从而可以控制HTTP Request的header部。

  • 但是urllib.urlretrieve函数以及urllib.quote等一系列quote和unquote功能没有被加入urllib2中,因此有时也需要urllib的辅助。

一切只为你我愿
2017-10-23 · TA获得超过394个赞
知道小有建树答主
回答量:1080
采纳率:28%
帮助的人:163万
展开全部
[python] view plain copy
req = urllib2.Request(
[python] view plain copy
url=url,
data=postdata,
headers=headers
)
result = urllib2.urlopen(req)

我们知道,HTTP是无连接的状态协议,但是客户端和服务器端需要保持一些相互信息,比如cookie,有了cookie,服务器才能知道刚才是这个用户登录了网站,才会给予客户端访问一些页面的权限。所以我们需要保存cookie,之后附带cookie再来访问网站,才能够达到效果。这里就需要Python的cookielib和urllib2等的配合,将cookielib绑定到urllib2在一起,就能够在请求网页的时候附带cookie。在构造req请求之前可以获取一个保存cookies的对象,并把该对象和http处理器、http的handler资源以及urllib2的对象绑定在一起:

[python] view plain copy
cj = cookielib.LWPCookieJar()
cookie_support = urllib2.HTTPCookieProcessor(cj)
# 创建一个opener,将保存了cookie的http处理器,还有设置一个handler用于处理http的URL的打开
opener = urllib2.build_opener(cookie_support, urllib2.HTT
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式