一、安装
- pip快速安装
pipinstallrequests
二、使用方法
1)导入模块
importrequests
2)发送请求
- 示例get请求:以百度搜索get请求为例
importrequests# 参数直接拼接到url的get请求r1=requests.get('https://www.baidu.com/s?wd=hello%20world') # 参数放到params的get请求(两种get请求方法最终发送的url都是https://www.baidu.com/s?wd=hello%20world)r2=requests.get(url='https://www.baidu.com/s', params={'wd': 'hello%20world'})
- 常用请求方式
# GET请求requests.get('https://code_space/get') # POST请求requests.post('https://code_space/post') # PUT请求requests.put('https://code_space/put') # DELETE请求requests.delete('https://code_space/delete')
3)定制头和cookie信息
cookie= {'key': 'value'} header= { "Accept": "*/*", "Accept-Encoding": "gzip, deflate, br", "Accept-Language": "zh-CN,zh;q=0.9", "Connection": "keep-alive", "Content-Type": "application/json", "Host": "ug.baidu.com", "Origin": "https://www.baidu.com", "Referer": "https://www.baidu.com/s?ie=UTF-8&wd=hello%20world", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36"} r=requests.get('https://www.baidu.com/s?wd=hello%20world',headers=header,cookies=cookie)
4)获取响应
r.encoding # 获取当前的编码 r.encoding = 'utf-8' # 设置编码 r.text # 以encoding解析返回内容。字符串方式的响应体,会自动根据响应头部的字符编码进行解码。 r.content # 以字节形式(二进制)返回。字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩。 r.headers # 以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None r.status_code # 响应状态码 r.raw # 返回原始响应体,也就是 urllib 的 response 对象,使用 r.raw.read() r.ok # 查看r.ok的布尔值便可以知道是否登陆成功 #*特殊方法*# r.json() #Requests中内置的JSON解码器,以json形式返回,前提返回的内容确保是json格式的,不然解析出错会抛异常 r.raise_for_status() #失败请求(非200响应)抛出异常
- 使用requests方法后,会返回一个response对象,其存储了服务器响应的内容,如上实例中已经提到的 r.text、r.status_code……
- 获取文本方式的响应体实例:当你访问 r.text 之时,会使用其响应的文本编码进行解码,并且你可以修改其编码让 r.text 使用自定义的编码进行解码。
三、测试demo
# -*- coding: utf-8 -*-"""@Time : 2022/1/16 16:15@Auth : 技术空间@File :requests_demo.py@IDE :PyCharm@Motto:技术总是要日积月累的"""importrequestsif__name__=='__main__': r1=requests.get('https://www.baidu.com/s?wd=hello%20world') cookie= {'key': 'value'} header= { "Accept": "*/*", "Accept-Encoding": "gzip, deflate, br", "Accept-Language": "zh-CN,zh;q=0.9", "Connection": "keep-alive", "Content-Type": "application/json", "Host": "ug.baidu.com", "Origin": "https://www.baidu.com", "Referer": "https://www.baidu.com/s?ie=UTF-8&wd=hello%20world", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) ""AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36" } r2=requests.get('https://www.baidu.com/s?wd=hello%20world', headers=header, cookies=cookie) print("r1的status_code-->"+str(r1.status_code)) print(r1.text) print("r2的status_code-->"+str(r1.status_code)) print(r2.text)