使用 XPath 按 CSS 类查找元素
在网页抓取中,通常需要根据 CSS 类来定位 HTML 元素。 XPath 是一个用于导航 XML 和 HTML 文档的强大工具,它提供了一种实现此目的的方法。
考虑一个 HTML 页面,其中的 div 元素具有名为“Test”的类。以下 XPath 查询可用于查找此元素:
//*[contains(@class, 'Test')]
此查询选择包含“Test”类的所有元素,无论它们出现在文档树中的哪个位置。
要优化性能,您可以将搜索范围缩小到特定元素类型,例如 div。例如,以下查询将搜索限制为包含“Test”类的 div:
//div[contains(@class, 'Test')]
但是,如果您有具有“Testvalue”或“newTest”等类的元素,上面的查询也将匹配它们。为了确保更精确的匹配,您可以使用在“Test”类之前和之后包含空格的串联字符串,如 @Tomalak:
//div[contains(concat(' ', @class, ' '), ' Test ')]
此查询将仅匹配包含单词“Test”作为单独类的 div value.
要消除任何空白问题,您还可以使用标准化空间函数标准化空格,如 @Terry:
//div[contains(concat(' ', normalize-space(@class), ' '), ' Test ')]
最后,将这些查询中的星号 (*) 替换为您想要匹配的实际元素名称,除非您希望搜索文档中的所有元素。这样会提高查询的效率。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3