0

嗨,我有一个 html 页面,我想使用 YQL 查询/“抓取”。我只想从该 html 页面上的 table 标记中获取四列文本,但我不知道如何使用 XPath 来表示它。

我通过右键单击 Chrome 中的单元格,检查元素并复制 xpath 找到了其中一个单元格,这是我仅针对该单元格获得的结果。

//*[@id="partsTable"]/tbody/tr[1]/td[8]/text()

这就是第 1 行第 8 列的表达式。实际上,我想获取 5、6、8、9 列中内容的所有行。我不知道是否可以轻松地在 XPath 中编写它。

非常感谢您的帮助。(我对 XPath 完全陌生,因此将不胜感激)

4

2 回答 2

1

用于position()查询元素的索引。

//*[@id="partsTable"]/tbody/tr/td[5 <= position() and position() <= 9]/text()

在浏览器中使用开发人员工具获取 XPath 表达式时要小心,请查看“为什么我的 XPath 查询(抓取 HTML 表)只能在 Firebug 中工作,而不是我正在开发的应用程序? ”。

于 2013-09-18T21:17:45.077 回答
0

您可以使用类似于 SQL 的语法查询特定位置IN

[position() = (5, 6, 8, 9)]

所以你的完整表达将是:

//*[@id="partsTable"]/tbody/tr[1]/td[position() = (5, 6, 8, 9)]/text()
于 2013-09-18T21:27:35.590 回答