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

每天一个 Python 库:requests HTTP 请求神器,用代码玩转网页什么是 requests requests 是 Python 中最受欢迎的第三方库之一 用于发送各种 HTTP 请求

大家好,欢迎来到IT知识分享网。

✅ 什么是requests

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

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

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


快速安装

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)) 
每天一个 Python 库:requests HTTP 请求神器,用代码玩转网页

获取网页数据

适用场景:网页抓取、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)) 
每天一个 Python 库:requests HTTP 请求神器,用代码玩转网页

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)) 
每天一个 Python 库:requests HTTP 请求神器,用代码玩转网页

设置请求头、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)
每天一个 Python 库:requests HTTP 请求神器,用代码玩转网页

小技巧:使用 .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) 
每天一个 Python 库:requests HTTP 请求神器,用代码玩转网页

异常处理与超时设置

防止请求卡住、适合放在定时任务或爬虫脚本中。


六、接口自动化测试场景示例(结合断言)

#!/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 
每天一个 Python 库:requests HTTP 请求神器,用代码玩转网页

接口自动化测试场景示例

✅ 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

(0)
上一篇 2025-07-09 11:10
下一篇 2025-07-09 11:15

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信