python爬虫requests库必备操作
👻上一系列博文[一篇万字博文带你入坑爬虫这条不归路]被众多爬虫爱好者/想要学习爬虫的小伙伴们阅读之后,很多小伙伴私信我说——大佬搞爬虫都是用的socket套接字嘛?👻
😬(苦笑)“那肯定不是啊!python为我们封装了那么多伟大而又简单实用的爬虫库,”不过我想说的是,“ 学啥技术都是从底层抓起,万丈高楼平地起,它也是基于地基稳! 所以在入坑文中简单地介绍使用了下底层爬虫库——socket!”😬
😜而本文,本博主就带领小伙伴们认真地学习一下Python中一大广为使用的爬虫库——Requests——专为人类而构建;有史以来下载次数最多的Python软件包之一!😜
重点来啦!重点来啦!! 💗💗💗
相信有不少小伙伴已经通过我的[上一系列博文]入坑爬虫,而本篇文讲解的Requests库也是学习爬虫之路的一大最为重要的知识点,在我们日后的爬虫开发中使用的最多的也是它哦!
| 学好Requests,你的爬虫之路日后将畅通无阻!!! |
1.简介
| Requests是一个优雅而简单的Python HTTP库,专为人类而构建。 |
| Requests是有史以来下载次数最多的Python软件包之一,每天下载量超过400,000次。 |
之前的urllib(后面会更新文章讲解哦——敬请期待!)做为Python的标准库,因为历史原因,使用的方式可以说是非常的麻烦而复杂的,而且官方文档也十分的简陋,常常需要去查看源码。与之相反的是,Requests的使用方式非常的简单、直观、人性化,让程序员的精力完全从库的使用中解放出来。
Requests的官方文档同样也非常的完善详尽,而且少见的有中文官方文档&&英文官方文档。
2.发起请求
| 根据入坑文可知爬虫:模拟浏览器发送请求,获取响应。那么首先我们就要学会使用Requests发起请求! |
Requests的请求不再像urllib一样需要去构造各种Request、opener和handler,直接使用Requests构造的方法,并在其中传入需要的参数即可。
源码:
def request(method, url,params=None, data=None, headers=None, cookies=None,
timeout=None, allow_redirects=True, proxies=None,verify=None, json=None):
参数详解:
(1)请求方法method:
每一个请求方法都有一个对应的API,比如GET请求就可以使用get()方法:

而POST请求就可以使用post()方法,并且将需要提交的数据传递给data参数即可:

而其他的请求类型,都有各自对应的方法:

知识点补给站——POST请求方法的小知识点:
应用场景:登录注册
需要传输大文本内容的时候使用(post请求对长度没有要求)。
(2)统一资源定位符url
URL(Universal Resource Locator),即统一资源定位符。

(3)传递url参数params
传递URL参数也不用再像urllib中那样需要去拼接URL,而是简单的,构造一个字典,并在请求时将其传递给params参数:
import requests
params = {'key': 'value1', 'key2': 'value2'}
resp = requests.get("http://httpbin.org/get", params=params)
print(resp.url)

小知识点:
有时候我们会遇到相同的url参数名,但有不同的值,而python的字典又不支持键的重名,那么我们可以把键的值用列表表示:
import requests
params = {'key': 'value1', 'key2': ['value2', 'value3']}
resp = requests.get("http://httpbin.org/get", params=params)
print(resp.url)

知识点补给站:
本文大多使用的URL站点是httpbin.org,它可以提供HTPP请求测试哦!
(4)传递form表单数据——data
将放进data的数据转换为form表单数据,同时不能传json数据,json数据为null。(注意:json和data二者只能同时存在其一)


(5)传递json数据——json
将json对应的数据放进json参数里。


(6)自定义headers
是不是很熟悉,这就是反爬第一阶段常用套路!
如果想自定义请求的Headers,同样的将字典数据传递给headers参数。

- 点赞
- 收藏
- 关注作者
评论(0)