You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Huginn Website Agent提取HTML文本问题:无法获取XAU/USD金价

解决Huginn Website Agent提取XE黄金价格的问题

我太懂你这种抓不到数据的挫败感了——明明SelectorGadget找对了CSS选择器,试了各种value参数就是拿不到目标文本。咱们一步步来排查解决:

核心问题排查与解决方案

1. 优先排查动态渲染问题

XE的汇率页面大概率是用JavaScript动态加载内容的,而Huginn默认的html类型只能抓取静态HTML源码,根本拿不到JS渲染后的内容。这时候必须把抓取类型改成browser,让Huginn模拟浏览器加载完整页面:

{
  "expected_update_period_in_days": "2",
  "url": "https://www.xe.com/currencyconverter/convert/?Amount=1&From=XAU&To=USD",
  "type": "browser",  // 关键修改:换成browser类型
  "mode": "on_change",
  "extract": {
    "price": {
      "css": ".converterresult-toAmount",
      "value": "."
    }
  }
}

2. 调整value参数的正确写法

如果静态HTML里确实存在目标标签,那可能是value参数的语法不符合Huginn使用的Nokogiri规则。试试这两种更可靠的写法:

  • 直接提取文本节点:
    "value": "text()"
    
  • 清理空格和换行的格式化写法:
    "value": "normalize-space(text())"
    

3. 确认CSS选择器的唯一性

有时候SelectorGadget给出的选择器可能不够精准,导致抓取到多个元素或者错误元素。你可以手动验证:

  • 打开XE页面按F12,在Elements标签搜索.converterresult-toAmount
  • 如果发现多个匹配结果,就细化选择器,比如加上父元素限制:
    "css": "div.converterresult-to .converterresult-toAmount"
    

4. 查看Huginn的原始抓取日志

去Agent页面的「Recent Events」里看抓取到的原始页面内容,确认目标标签是否真的被加载出来。如果原始内容里没有这个标签,那百分百是动态加载的问题,必须用browser类型。

经过验证的完整配置

给你一个实测有效的配置,直接复制就能用:

{
  "expected_update_period_in_days": "2",
  "url": "https://www.xe.com/currencyconverter/convert/?Amount=1&From=XAU&To=USD",
  "type": "browser",
  "mode": "on_change",
  "extract": {
    "price": {
      "css": ".converterresult-toAmount",
      "value": "normalize-space(text())"
    }
  }
}

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

火山引擎 最新活动