Python中如何捕获HTTP请求并保存到文本文件?
现在我想做一点事情 就是
把某个 app 的请求都保存下来
有这些数据需要保存:url,cookie 这些东西,而且是只保存这个 app 的,请求可能是 https
我用 fiddler,我能抓到这些请求,但是怎么把我要的信息,保存到本地我就不知道怎么做了。
如果是你们,你们会怎么做?
Python中如何捕获HTTP请求并保存到文本文件?
2 回复
import requests
from datetime import datetime
def save_http_response(url, filename="response.txt"):
"""
捕获HTTP请求响应并保存到文本文件
"""
try:
# 发送GET请求
response = requests.get(url, timeout=10)
response.raise_for_status() # 检查HTTP错误
# 准备保存的内容
timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
content = f"""=== HTTP响应保存记录 ===
请求时间: {timestamp}
请求URL: {url}
状态码: {response.status_code}
响应头:
{response.headers}
响应内容:
{response.text}
"""
# 写入文件
with open(filename, 'w', encoding='utf-8') as f:
f.write(content)
print(f"响应已保存到 {filename}")
return True
except requests.exceptions.RequestException as e:
print(f"请求失败: {e}")
return False
except IOError as e:
print(f"文件保存失败: {e}")
return False
# 使用示例
if __name__ == "__main__":
# 测试保存百度首页
save_http_response("https://www.baidu.com", "baidu_response.txt")
这个函数做了几件事:
- 用requests库发送GET请求
- 收集响应信息(状态码、头部、内容)
- 添加时间戳便于追踪
- 用UTF-8编码保存到文本文件
要捕获POST请求的话,把requests.get()换成requests.post()并加上data参数就行。记得先pip install requests安装库。
简单说就是requests发请求,然后写文件保存。
mitmproxy

