每天一个 Python 库:requests HTTP 请求神器,用代码玩转网页

360影视 动漫周边 2025-06-17 03:50 4

摘要:requests 是 Python 中最受欢迎的第三方库之一,用于发送各种 HTTP 请求(GET、POST、PUT、DELETE 等)。无论是爬虫、接口测试,还是后台数据采集,它都表现稳定高效。

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

学习本来就不是一蹴而就的事,不过只要你肯练、敢用,坚持一阵子,你一定能看到变化![碰拳]

#!/usr/bin/env python# -*- coding: UTF-8 -*-"""@Project :Fish @File :D18.py@Date :2025/6/16 18:58 @Author : malijie"""import JSONimport requestsrequests.packages.urllib3.disable_warningsurl = "https://httpbin.org/get"params = {"name": "Trump","party": "Republican","age": 79}response = requests.get(url, params=params, verify=False)print(response.status_code) # 200print(json.dumps(json.loads(response.text), indent=4, sort_keys=True, ensure_ascii=False))

获取网页数据

适用场景:网页抓取、API 查询、数据分析前的采集。

#!/usr/bin/env python# -*- coding: UTF-8 -*-"""@Project :Fish @File :D18.py@Date :2025/6/16 18:58 @Author : malijie"""import jsonimport requestsrequests.packages.urllib3.disable_warningsurl = "https://httpbin.org/post"params = {"name": "Trump","party": "Republican","age": 79}data = {"username": "admin", "password": "123456"}response = requests.post(url, params=params, data=data, verify=False)print(response.status_code) # 200print(json.dumps(json.loads(response.text), indent=4, sort_keys=True, ensure_ascii=False))

POST 请求:提交表单/发送数据

适用场景:模拟登录、表单提交、自动化测试。

#!/usr/bin/env python# -*- coding: UTF-8 -*-"""@Project :Fish @File :D18.py@Date :2025/6/16 18:58 @Author : malijie"""import jsonimport requestsrequests.packages.urllib3.disable_warningsurl = "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": "123456"}response = requests.get(url, params=params, data=data, verify=False, headers=headers, cookies=cookies)print(response.status_code) # 200print(json.dumps(json.loads(response.text), indent=4, sort_keys=True, ensure_ascii=False))

设置请求头、Cookie

适用场景:伪装成浏览器、保持会话。

#!/usr/bin/env python# -*- coding: UTF-8 -*-"""@Project :Fish @File :D18.py@Date :2025/6/16 18:58 @Author : malijie"""import jsonimport requestsrequests.packages.urllib3.disable_warningsurl = "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 jsonimport requestsrequests.packages.urllib3.disable_warningsdef 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 = 3timeout_2 = 5test(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 jsonimport requestsrequests.packages.urllib3.disable_warningsdef test_status:url = "https://httpbin.org/status/200"response = requests.get(url, verify=False)print(response.status_code)assert response.status_code == 200def 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保存图片/文件获取 JSONresponse.json自动解析接口返回值

点赞[赞]关注不迷路,后续更新更多自动化测试经验,我们一起成长!

欢迎评论区留言你最常用的 JSON 场景或踩过的坑~

下期预告:beautifulsoup4 — 精准提取网页结构中的信息

来源:子非鱼一点号

相关推荐