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

如何从API返回的JSON响应中提取link值并用于Selenium脚本

问题描述

我发送请求后得到如下JSON响应:

{"status": "success", "orders": [{"id": "1666543", "link": "asd.com", "quantity": "111"}]}

我的响应处理代码如下:

response = requests.get(url, params=params)
response.json()
wynik = response.json()
print(response.json())
with open('data.json', 'w', encoding='utf-8') as f:
    json.dump(response.text, f, ensure_ascii=False, indent=4)

目前代码保存的data.json是单行格式,我需要提取其中的link值并用于Selenium脚本,实现「发送请求→获取响应→复用link值」的全自动化流程,但不知道怎么提取,请帮忙解决。

解决方案

1. 修正JSON文件保存格式问题

你当前用json.dump(response.text, ...)是把原始JSON字符串直接写入文件,所以呈现单行。应该将解析后的JSON对象(而非字符串)写入,这样才能生成格式化的文件:

import requests
import json

response = requests.get(url, params=params)
wynik = response.json()  # 仅解析一次即可,避免重复调用
print(wynik)

# 保存格式化后的JSON文件
with open('data.json', 'w', encoding='utf-8') as f:
    json.dump(wynik, f, ensure_ascii=False, indent=4)

2. 提取link值

orders是数组结构,里面的每个元素为订单对象。如果只有单个订单,直接通过索引取第一个元素的link字段:

# 提取单个订单的link
order_link = wynik['orders'][0]['link']
print(order_link)  # 输出: asd.com

如果存在多个订单,可通过循环遍历所有订单的link:

# 遍历所有订单提取link
for order in wynik['orders']:
    print(order['link'])

3. 结合Selenium实现全自动化流程

将提取到的link传入Selenium脚本,完成端到端自动化操作,示例代码如下:

import requests
import json
from selenium import webdriver
import time

# 1. 发送请求获取响应
url = "你的请求URL"
params = {"参数键": "参数值"}
response = requests.get(url, params=params)
wynik = response.json()

# 2. 提取link值(若需完整URL可自行拼接前缀,比如https://)
order_link = wynik['orders'][0]['link']

# 3. Selenium自动化操作
driver = webdriver.Chrome()  # 需确保ChromeDriver已配置环境变量
driver.get(order_link)

# 此处添加你的业务操作逻辑,比如点击元素、填写表单等
# 示例:打印页面标题
print(driver.title)

time.sleep(3)  # 临时等待页面加载(生产环境建议用显式等待)
driver.quit()

内容的提问来源于stack exchange,提问作者r4zoRK

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 22:34:57