请求库之requests

Posted on 2022-10-09 23:30  风云伴日斜  阅读(45)  评论(0编辑  收藏  举报

Get请求

requests.get(url)->Response

示例:

url = 'http://httpbin.org/get'
r = requests.get(url)

r.text是返回的内容,为str类型

r.json()可以将json格式的字符串解析为dict类型

r.content是返回的二进制码,当请求的内容为图片、音视频时使用

可以直接在get方法添加添加headers,paras等参数

Post请求

requests.post(url)->Response

使用data参数添加的dict类型的内容会被解释为form,相当于表单提交的数据。

响应

响应对象Request有status_code、header、cookies、url、history等属性,history是历史请求,此外resuests还提供了状态码查询对象requests.codes

使用方法如下

文件上传

Cookies

response.cookies获取响应对象的cookies,cookies为RequestsCookieJar的对象,可以遍历cookies内容

可以直接复制cookies到headers中发起请求

也可以手动构造RequestsCookieJar对象,使用set()添加cookie内容

Session会话

网站会使用cookies来保持用户登陆状态,但是爬虫在多次请求中使用cookies来保持状态很烦琐,可以使用requests.Session来维持一个会话

示例如下:

不同请求没有保持cookies

使用session对象

SSL证书验证

例如访问12306,因为12306使用自己发布的证书,所以访问12306会报错,可以将get的参数verify设置为false或者指定本地证书

设置verify会报警告,可以设置忽略警告

也可以捕获警告到日志

指定本地证书

代理

http/https代理

socks协议代理

身份认证

简写为

oauth认证需要使用pip 安装 requests_oauthlib

使用方法

Request类

与urllib中的request类相似