首页 > 解决方案 > 如何使用 Xpath 从具有特定标题的表中获取行

问题描述

我需要获取 HTML 表中的所有行:

<table>
  <thead>
    <tr>
      <th>Name</th>
      <th>Location</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Dunkin Donuts</td><td>2 York Ave</td>
    </tr>
  </tbody>
</table>

由于页面中有很多表,我想从这个特定的表中获取行。

这是我的 Xpath:

table[tr/th/text()="Location"]//tr

我也试过:

table[tr/th[2]/text()="Location"]//tr

不返回任何元素。关于如何让它发挥作用的想法?

标签: xpathweb-scraping

解决方案


也许您的上下文节点没有table孩子。您可以通过全局选择所有table元素来解决此问题//table。您也没有考虑theadandtbody元素。这样做会产生以下 XPath 表达式:

//table[thead/tr/th/text()="Location"]/tbody/tr

推荐阅读