python之requests的用法
Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便,
可以节约我们大量的工作,完全满足 HTTP 测试需求。
一、requests模块的安装
1、pip安装
(1)在windows系统下只需要在命令行输入命令 pip install requests 即可安装。
(2)在 linux 系统下,只需要输入命令 sudo pip install requests ,即可安装。
2、下载安装包安装
由于pip命令可能安装失败,所以有时我们要通过下载第三方库文件来进行安装。
在github上的地址为:https://github.com/requests/requests
下载文件到本地之后,解压到python安装目录。 之后打开解压文件,在此处运行命令行并输入:python setup.py install 即可。
之后我们测试requests模块是否安装正确,在交互式环境中输入 import requests 如果没有任何报错,说明requests模块我们已经安装成功了
3、pycharm安装
如下图,点击+号,跳出弹窗,在弹窗输入requests即可下载

二、requests模块的使用方法
1、requests库的七个主要方法
| 方法 | 解释 |
| requests.request() | 构造一个请求,支持以下各种方法 |
| requests.get() | 获取html的主要方法 |
| requests.head() | 获取html头部信息的主要方法 |
| requests.post() | 向html网页提交post请求的方法 |
| requests.put() | 向html网页提交put请求的方法 |
| requests.patch() | 向html提交局部修改的请求 |
| requests.delete() | 向html提交删除请求 |
2、requests.get()
(1)无参数的get请求
import requests response=requests.get('https://www.baidu.com') print(type(response)) #响应的类,返回类<class 'requests.models.Response'> print(response.text) #以文本方式输出 print(response.content) #以二进制方式输出 print(response.cookies) #获取cookies值 print(response.status_code) #HTTP请求的返回状态 print(type(response.text)) #返回文本类型 print(response.headers) #获取http头部信息
(2)有参数的get请求
带参数请求:我们只需在链接地址后面加问好?然后后面带参数的名和值,参数和参数之间用与&隔开。
另外requests函数也提供了一个params参数,可以代表用户向浏览器的请求,这样我们
就可以使用json字典的形式传递参数:
url='https://open-doc.dingtalk.com/docs/doc.htm' header={ 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36', } parameter={ 'spm':'a219a.7629140.0.0.13564a97iD0oiY', 'treeId':'257&articleId=105736', 'docType':'1' } response=requests.get(url,params=parameter,headers=header) print(response.url)
结果:https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.13564a97iD0oiY&treeId=257%26articleId%3D105736&docType=1
3、post请求
#GET请求
HTTP默认的请求方法就是GET
* 没有请求体
* 数据必须在1K之内!
* GET请求数据会暴露在浏览器的地址栏中
GET请求常用的操作:
1. 在浏览器的地址栏中直接给出URL,那么就一定是GET请求
2. 点击页面上的超链接也一定是GET请求
3. 提交表单时,表单默认使用GET请求,但可以设置为POST
#POST请求
(1). 数据不会出现在地址栏中
(2). 数据的大小没有上限
(3). 有请求体
(4). 请求体中如果存在中文,会使用URL编码!
requests.post()用法与requests.get()完全一致,特殊的是requests.post()有一个data参数,用来存放请求体数据
url='https://open-doc.dingtalk.com/docs/doc.htm' headers={ 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36', } dat={ 'spm':'a219a.7629140.0.0.13564a97iD0oiY', 'treeId':'257&articleId=105736', 'docType':'1' } response=requests.post(url,data=dat,headers=headers) print(response.url) print(response.text)
浙公网安备 33010602011771号