大家好,欢迎来到IT知识分享网。
✅ 什么是requests
requests 是 Python 中最受欢迎的第三方库之一,用于发送各种 HTTP 请求(GET、POST、PUT、DELETE 等)。无论是爬虫、接口测试,还是后台数据采集,它都表现稳定高效。

学习本来就不是一蹴而就的事,不过只要你肯练、敢用,坚持一阵子,你一定能看到变化!
快速安装
pip install requests
一、GET 请求:获取网页数据
#!/usr/bin/env python # -*- coding: UTF-8 -*- """ @Project :Fish @File :D18.py @Date :2025/6/16 18:58 @Author : malijie """ import json import requests requests.packages.urllib3.disable_warnings() url = "https://httpbin.org/get" params = { "name": "Trump", "party": "Republican", "age": 79 } response = requests.get(url, params=params, verify=False) print(response.status_code) # 200 print(json.dumps(json.loads(response.text), indent=4, sort_keys=True, ensure_ascii=False))

获取网页数据
适用场景:网页抓取、API 查询、数据分析前的采集。
二、POST 请求:提交表单/发送数据
#!/usr/bin/env python # -*- coding: UTF-8 -*- """ @Project :Fish @File :D18.py @Date :2025/6/16 18:58 @Author : malijie """ import json import requests requests.packages.urllib3.disable_warnings() url = "https://httpbin.org/post" params = { "name": "Trump", "party": "Republican", "age": 79 } data = {"username": "admin", "password": ""} response = requests.post(url, params=params, data=data, verify=False) print(response.status_code) # 200 print(json.dumps(json.loads(response.text), indent=4, sort_keys=True, ensure_ascii=False))

POST 请求:提交表单/发送数据
适用场景:模拟登录、表单提交、自动化测试。
三、设置请求头、Cookie
#!/usr/bin/env python # -*- coding: UTF-8 -*- """ @Project :Fish @File :D18.py @Date :2025/6/16 18:58 @Author : malijie """ import json import requests requests.packages.urllib3.disable_warnings() url = "https://httpbin.org/headers" headers = {"User-Agent": "MyPythonBot/1.0"} cookies = {"sessionid": "fake-session-id"} params = { "name": "Trump", "party": "Republican", "age": 79 } data = {"username": "admin", "password": ""} response = requests.get(url, params=params, data=data, verify=False, headers=headers, cookies=cookies) print(response.status_code) # 200 print(json.dumps(json.loads(response.text), indent=4, sort_keys=True, ensure_ascii=False))

设置请求头、Cookie
适用场景:伪装成浏览器、保持会话。
四、下载文件(如图片、PDF)
#!/usr/bin/env python # -*- coding: UTF-8 -*- """ @Project :Fish @File :D18.py @Date :2025/6/16 18:58 @Author : malijie """ import json import requests requests.packages.urllib3.disable_warnings() url = "https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png" response = requests.get(url) with open("Baidu.png", "wb") as f: f.write(response.content)

小技巧:使用 .content 获取二进制内容,用于文件写入。
⏱ 五、异常处理与超时设置
#!/usr/bin/env python # -*- coding: UTF-8 -*- """ @Project :Fish @File :D18.py @Date :2025/6/16 18:58 @Author : malijie """ import json import requests requests.packages.urllib3.disable_warnings() def test(timeout): url = "https://httpbin.org/delay/3" try: response = requests.get(url, timeout=timeout, verify=False) print(f"timeout= {timeout},\n{json.dumps(json.loads(response.text), indent=4, sort_keys=True, ensure_ascii=False)}") except requests.exceptions.Timeout: print(f"timeout= {timeout},请求超时!") if __name__ == '__main__': timeout_1 = 3 timeout_2 = 5 test(timeout_1) test(timeout_2)

异常处理与超时设置
防止请求卡住、适合放在定时任务或爬虫脚本中。
六、接口自动化测试场景示例(结合断言)
#!/usr/bin/env python # -*- coding: UTF-8 -*- """ @Project :Fish @File :D18.py @Date :2025/6/16 18:58 @Author : malijie """ import json import requests requests.packages.urllib3.disable_warnings() def test_status(): url = "https://httpbin.org/status/200" response = requests.get(url, verify=False) print(response.status_code) assert response.status_code == 200 def test_status2(): url = "https://httpbin.org/status/200" response = requests.get(url, verify=False) print(response.status_code) assert response.status_code == 404

接口自动化测试场景示例
✅ requests 是接口测试框架如 pytest 或 unittest 的好搭档。
总结速查表
功能 |
用法 |
说明 |
GET 请求 |
requests.get(url, params) |
获取网页/接口数据 |
POST 请求 |
requests.post(url, data) |
提交数据 |
请求头设置 |
headers={‘User-Agent’:…} |
伪装浏览器 |
设置超时 |
timeout=5 |
防止阻塞 |
下载文件 |
response.content |
保存图片/文件 |
获取 JSON |
response.json() |
自动解析接口返回值 |
点赞关注不迷路,后续更新更多自动化测试经验,我们一起成长!
欢迎评论区留言你最常用的 JSON 场景或踩过的坑~
下期预告:beautifulsoup4 — 精准提取网页结构中的信息
点击头像查看往期精彩文章!
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/182866.html