urllib、urllib2、requests关系

简单记录一笔,有点乱,后面补充ps:比较各个库特性太多了

urllib和urllib2是python标准库,就是你安装了python,这两个库就已经可以直接使用了;requests是第三方库,不是python基金会实现的,但是功能是很强大的。

urllib和urllib2

这两个标准库做爬虫也基本够用了,不用requests也是可以的,urllib2是urllib的增强。

  • urllib和urllib2都是通过url打开资源,其中urllib短板是在太大,例如它只能接受url,却如法对请求进行headers的伪装,这样写的爬虫发送的请求会被很多网站直接阻挡掉。
  • 因此python基金会不得不推出urllib2对这块功能进行增强。
    1. urllib2.urlopen可以接受一个Request对象或者url,并以此设置一个URL的headers。
    2. 如果你访问一个网站,想更改User Agent(可以伪装你的浏览器),你就要用urllib2。
    3.  urllib支持设置编码的函数,urllib.urlencode,在模拟登陆的时候,经常要post编码之后的参数,所以要想不使用第三方库完成模拟登录,你就需要使用urllib。 
    4. urllib2模块没有加入urllib.urlretrieve函数以及urllib.quote等一系列quote和unquote功能,因此有时也需要urllib的辅助
  • 但是问题在于urllib2并没有完全取代urllib的所有功能,比如urllib中的urlencode()方法,在urllib2中就是没有的。所以urllib和urllib2不得不一起使用。

urllib3 
Urllib3是一个功能强大,条理清晰,用于HTTP客户端的Python库,许多Python的原生系统已经开始使用urllib3。Urllib3提供了很多python标准库里所没有的重要特性: 
1.线程安全 
2.连接池 
3.客户端SSL/TLS验证 
4.文件分部编码上传 
5.协助处理重复请求和HTTP重定位 
6.支持压缩编码 
7.支持HTTP和SOCKS代理
 

Requests

Requests 使用的是 urllib3,继承了urllib2的所有特性。Requests支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自 动确定响应内容的编码,支持国际化的 URL 和 POST 数据自动编码。

的使用有什么区别? 回答: urllib.request和requests是两个用于发起HTTP请求的Python库。它们之间的主要区别在于使用的便捷性和功能。urllib.request是Python标准库中的一部分,它提供了基本的HTTP请求功能,但使用起来相对繁琐。需要手动构造请求对象、添加头文件等。而requests库则是一个第三方库,对urllib进行了进一步封装,提供了更简洁、易用的API。使用requests库,只需要调用对应的方法即可发起HTTP请求,无需手动构造请求对象和头文件。因此,总体而言,requestsurllib.request更方便。但在某些特定情况下,如模拟用户登录等,使用urllib.request进行自定义定制的HTTP请求也是必不可少的。 #### 引用[.reference_title] - *1* [python中urllib.request和requests的使用和区别](https://blog.csdn.net/ytraister/article/details/106376388)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [python爬虫中urllib.request和requests的区别](https://blog.csdn.net/weixin_42213622/article/details/105852794)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值