获取匹配 xpath 的属性值

Posted

技术标签:

【中文标题】获取匹配 xpath 的属性值【英文标题】:Get attribute values matching xpath 【发布时间】:2020-08-09 09:41:39 【问题描述】:

考虑以下示例 html

<html>
    <head></head>
    <body>
        <a href="link1.html">link1</a>
        <a href="link2.html">link2</a>
    </body>
</html>

$x('/html/body/a/@href') 在 Chrome 开发者控制台中给了我两个结果:

现在不只是匹配href,我想提取href的属性值,所以我想要的结果是一个数组["link1.html", "link2.html"]。我该怎么做?

【问题讨论】:

【参考方案1】:

您不能直接使用xPath 获取属性的值,您需要在获取href 之后循环它们以获取每个值

$x('/html/body/a/@href')[0].value
$x('/html/body/a/@href')[1].value

类似这样的:

$x('/html/body/a/@href').map(x => x.value)

【讨论】:

以上是关于获取匹配 xpath 的属性值的主要内容,如果未能解决你的问题,请参考以下文章

Python爬虫编程思想(42):XPath实战:匹配属性

爬虫进阶 - XPath应用

RFS入门Xpath使用

XPath 1.0:使用当前节点的父节点的属性值来寻找另一个匹配的节点

Xpath - 选择具有属性的元素并获取另一个属性值

匹配 TR 元素的 bgcolor 属性的 XPath 表达式