You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Selenium-wire如何获取POST请求的响应文本而非请求负载

Selenium-wire如何获取POST请求的响应文本而非请求负载

我懂你现在的痛点——你写的代码现在拿到的是POST请求发出去的请求负载,但你真正想解析的是服务器给的响应内容对吧?其实Selenium-wire里的每个请求对象本身就带着响应信息,你只需要调整一下获取的对象就行。

你原来的代码里用了driver.last_request.body,这确实是在拿请求发送出去的内容。要获取响应的话,你需要访问请求对象的response属性,然后取它的body字段。这里给你调整后的代码示例:

import json

for request in driver.requests:
    # 先过滤出目标POST请求
    if request.method == 'POST' and request.headers.get('Content-Type') == 'application/json':
        # 一定要先判断是否有响应返回,避免请求失败时报错
        if request.response:
            # 把响应的字节内容解码成字符串(utf-8是常见编码,若不行可以试试其他比如gbk)
            response_body = request.response.body.decode('utf-8')
            # 解析成JSON格式
            response_data = json.loads(response_body)
            # 这里就可以处理你的响应数据了,比如打印或者提取字段
            print("响应内容:", response_data)

这里有几个小细节要注意:

  • 用request.headers.get('Content-Type')比直接取request.headers['Content-Type']更安全,避免某些请求没有这个头时抛出KeyError
  • 必须判断request.response是否存在,因为有些请求可能因为网络问题、服务器错误等没有返回响应,直接访问的话会报错
  • 如果解码utf-8失败,可以看看响应头里的Content-Type有没有指定编码(比如charset=utf-8),或者尝试其他常见编码

备注:内容来源于stack exchange,提问作者JayRSP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 08:39:07