request
官方文档:https://requests.readthedocs.io/projects/cn/zh-cn/latest/
快速上手文档:https://requests.readthedocs.io/projects/cn/zh-cn/latest/user/quickstart.html
1、基本使用
直接在对应的环境中安装即可,在Anaconda中直接pip install requests
-
使用request中的无论什么方式(get、post、put)进行请求网页,返回值都是
<class ‘requests.models.Response’>
-
response的属性以及类型
类型 | models.Response |
---|---|
r.text | 获取网站源码(str) |
r.endcoding | 访问或定制响应的编码方式比如utf-8 |
r.url | 获取请求的url |
r.status_code | 响应的状态码 |
r.headers | 响应头信息 |
r.cookies | cookie信息 |
Response源码
2、get请求
- 对于get请求,如果需要附件额外参数,使用get方法中的params参数就可以传递附加信息
- 把url参数以字典的形式传给get方法的params参数
这样请求的URL就自动被构造成了
https://www.httpbin.org/get?name=hahah&age=22 - 当前请求的这个网页的返回类型即r.text虽然是str类型的,但是是JSON格式的
所以如果想直接解析返回结果,得到一个JSON数据,则可以直接调用json方法
print(r.json())
print(type(r.json()))
这个方法可以将返回结果转化为字典
注:如果返回结果不是JSON格式,则会出现解析错误,抛出json.decoder.JSONDecodeError异常
- 抓取二进制数据
图片、音频、视频等文件本质上都是由二进制码组成
open方法,第一个参数是要保存的文件名称,第二个参数代表以二进制写的形式打开文件,可以向文件中写入二进制数据 - 请求头的设置
在发起http请求时,会有一个请求头,以下就是设置请求头的方法
先用一个字典存储请求头信息
再在requests.get()方法中的headers参数来设置请求头
这个例子中只设置了请求头的UA信息,也可以在headers中添加任意其他字段信息