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")

这个函数做了几件事:

  1. 用requests库发送GET请求
  2. 收集响应信息(状态码、头部、内容)
  3. 添加时间戳便于追踪
  4. 用UTF-8编码保存到文本文件

要捕获POST请求的话,把requests.get()换成requests.post()并加上data参数就行。记得先pip install requests安装库。

简单说就是requests发请求,然后写文件保存。


mitmproxy

回到顶部