您好我有一个html页面,我想使用YQL查询/“刮”。 我想从该html页面上的表标签中只获得四列文本,我不知道如何使用XPath表示它。
我通过右键单击Chrome中的单元格找到其中一个单元格,检查元素并复制xpath,这是我仅为该单元格获得的结果。
//*[@id="partsTable"]/tbody/tr[1]/td[8]/text()
这是第1行和第8列的表达式。 实际上,我想获取5,6,8,9列中内容的所有行。我不知道是否可以轻松地在XPath中编写它。
非常感谢你的帮助。 (我是XPath的新手,所以解释将不胜感激)
答案 0 :(得分:0)
使用position()
查询元素的索引。
//*[@id="partsTable"]/tbody/tr/td[5 <= position() and position() <= 9]/text()
注意在浏览器中使用开发人员工具获取XPath表达式时,请查看“Why does my XPath query (scraping HTML tables) only work in Firebug, but not the application I'm developing?”。
答案 1 :(得分:0)
您可以使用类似于SQL的IN
:
[position() = (5, 6, 8, 9)]
所以你的完整表达将是:
//*[@id="partsTable"]/tbody/tr[1]/td[position() = (5, 6, 8, 9)]/text()