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

Python执行无print却终端输出,无法捕获路透目标JSON数据求助

问题解决方法

问题原因

你请求的https://www.reuters.com/markets/quote/USDEUR=X/返回的是HTML网页,不是JSON数据。直接调用response.json()会触发解析异常,异常信息会直接输出到终端,自然也没法获取目标的market_data。

解决方案

要获取目标JSON数据,需要解析页面中的脚本内容,提取出包含market_data的部分。下面是修正后的代码:

import requests
from bs4 import BeautifulSoup
import json

url = "https://www.reuters.com/markets/quote/USDEUR=X/"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")

# 找到包含market_data的脚本标签
script_tags = soup.find_all("script")
target_data = None
for script in script_tags:
    if script.string and "market_data" in script.string:
        # 提取JSON部分并解析
        raw_data = script.string.split("window.__INITIAL_STATE__ = ")[1].split(";")[0]
        parsed_data = json.loads(raw_data)
        target_data = parsed_data["marketData"]["market_data"]
        break

if target_data:
    # 此时target_data就是你需要的目标数据,可直接赋值使用
    print(target_data)
else:
    print("未找到目标数据")

代码说明

  • 用BeautifulSoup解析HTML页面,遍历所有脚本标签,定位包含market_data的脚本内容。
  • 从脚本中提取出页面初始化状态的JSON字符串,解析后就能拿到你需要的market_data数组,直接赋值给变量即可使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 03:35:03