温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
一个月被下载,近期一发kth hub5万多大,什么项目的数据这么炸?说起Python第三方库,你最先想到的是哪家?数据分析的pandas,图像处理的纰llow还是用jungle来做web开发?没错,他们都很牛叉,但这个库的下载量竟然比他们都要大。关注编程教室,学习编程知识今天我们就来讲讲这个号称最人性化的HTTP库requests怎么个人性化法。假如你要通过一个天气API接口获取某个城市的气温变化,用requests来写仅仅需要这样两行代码。而其他一些常见的网络请求操作,如提交带数据参数的posts的请求,修改网页的编码、解码Jason数据自定义请求头、添加cookie、设定请求等待时长,诸如此类的操作都可以通过requests提供的属性或方法在一两行代码内轻松拿下,而想要得到这些,你所要做的仅仅是通过pip install安装一下,以及通过官方文档了解模块的使用方法。你可能要说了,这。
01:00
但难道Python内置的模块不能实现?诶,那倒不至于,只是没那么方便。比如我现在要请求一个限制了浏览器类型,需要提交一组数据参数的post接口,而返回结果是编码为UTF8的Json格式数据,另外还做了GZP压缩。如果用Python默认的库来做,每一步都需要手动来处理,代码比较繁琐。换成Requests,只需要在posts函数中提供词典类型的heads和data参数,就完成了对请求头和数据的设定。而至于返回结果的GZ压缩和UTF编码都会自动帮你搞定。假如编码没有被识别,也只要一个赋值就可以成功运行,最后再用Json函数把结果解析成直接可用的字典类型,开发者省去了很多繁琐的工作,代码量大大减轻,更不要说如果想要实现登录后的状态,保持原本内置库,要用HTp.cookie价和URL的request配合实现,写出来代码是这样的,而requests就简单多了,直接增加一个session对象就能在几乎不改动之。
02:00
前代码的情况下实现登录状态的保持,两种写法的差别对比非常明显,一旦你有过request的经验,就打开了网络请求的新世界,再也不想用内置的urlb来实现。就连各家大厂的Python项目,网络请求也常常用requests来解决,毕竟这么好用的模块相信谁都不会拒绝,广泛的使用率也让requests始终霸榜在PYPI排行榜的前列。而如此强大的类库最初仅仅是一个程序员的个人项目。2011年的某个下午,一个叫做kenne斯的小伙子因为无法忍受Python内置的URL列P库,决定施展一下他的开发技柱,写一个真正人性化的HTB请求库,没想到竟写成了Python生态的重要支柱。说到这个,Kenneth也是技术圈里充满话题的人物,在软件开发之外,他还热衷于音乐和摄影艺术,从他不同时期的照片就能看出,他本人的故事也一定很丰富。除了Requests,另一个很受欢迎的Python虚拟环境管理工具pipe env也是由他发布。凭借这些项目,他一度是gith HUB上获得star最多的。
03:00
Python用户,不过如今他已将大部分项目移交给了Python开源社区管理维护。每一个Python开发者都有机会向项目贡献自己的技术。如果你是Python初学者,还没有进行过第三方模块的学习,不妨从request做起,它上手简单,文档清晰,是开发爬虫和API请求必学的神器。如果你已经入门了Python,想要进一步提高自己的编程能力,也可以把requests的项目当做进阶学习的案例,阅读源码,学习代码风格和程序结构的设计,甚至提交代码改进项目中的问题,为开源项目贡献一份力。
我来说两句