将表转换为JSON

时间:2014-04-29 02:36:26

标签: json xpath yahoo-pipes

我仍在与雅虎管道采取措施,并努力应对我认为应该是一项简单的任务。

我有table on a page正在实时更新(每1-2分钟一次) 我想提取行,推入管道,然后以下列格式吐出JSON:

"sites": [
 {
      "Site": "210001-Singleton",
      "LastSampleTime": "29/04/2014 11:51:00",
      "RiverLevel": "0.744",
      "FlowRate": "501.6",
      "FlowRate": "0.744",
      "Rainfall": "",
      "WaterTemp": "",
      "Conductivity": ""
  },
etc.

我认为我正确地认为,一旦我用XPath提取器拉出相关表组件,我就会使用包含在其中的Item Builder的Loop来将数据吐出到上面的格式中。但是,我正在努力尝试拉入简单的表格。

以下是my yahoo pipe的简化版本 我尝试了XPath字符串的多种变体来尝试获取我需要的行 从用萤火虫检查桌子,我知道我想要的TR,似乎都与tr style="height:18px"的高度相同 但是,不确定这是否是提取它们的最佳方式。

有人可以协助提供一些关于如何将表拉成我想要的格式的指示吗?不太确定我在哪里出错Xpath

1 个答案:

答案 0 :(得分:2)

Import.io可以做你想要的。即使该站点上的HTML有点混乱,您仍然可以在该工具中使用自定义xpath覆盖。

我为你构建了第一行数据,所以你需要做的就是进入并编辑现有的提取器,使用以下提取器作为起点添加更多列https://import.io/data/set/?mode=loadSource&source=f867a123-091e-4596-bbea-871df2d5ceb7

只需打开它,编辑提取器并添加所需的cols。这是我使用的xPath代码:

    /html/body/table/tbody/tr[7]/td[5]

表中的第7行是第一行包含数据,td [2]是第一个单元格。只需增加tr [x]中的数字即可到达下一行。

一旦数据结构化,点击集成,并按照说明操作。使用import.io支持也可以提供帮助,这就是它们的用途。

如果表格将扩展为更多行,您可能希望更改xPath以处理tr

的子元素的值

免责声明:我在import.io工作,存在其他工具。