如何使用XPATH从HTML检索特定数据



嘿,我很难使用XPath从网站获取股票价格。

HTML是这样:

<span class=" price">
<meta content="14.400" itemprop="price">
14.400
<span itemprop="priceCurrency"> BRL</span>
</span>

我用来检索14.400值的路径(所有这些值都使我无效)是:

@"//span[@class=' price']";
@"/span[@class=' price']";
@"span[@class=' price']";
@"//meta[@itemprop='price'"];
@"/html/body/div[2]/div/div/div/div[2]/span/meta";
@"//html/body/div[2]/div/div/div/div[2]/span/meta";

尝试了更多的东西,我最接近我所需要的是使用此XPath:

@"//span[@class=' price']/meta";

获取此日志:

2014-02-07 13:50:39.616 manejoderisco[2838:60b] {
nodeAttributeArray =     (
            {
        attributeName = itemprop;
        nodeContent = price;
    },
            {
        attributeName = content;
        nodeContent = "14.280";
    }
);
nodeName = meta;
}

,但仍将我返回无效...

我最终设法创建了正确的xpath,这是:

@"//span/meta/@content

您要解析的HTML并不能很好地形成,因为meta没有关闭标签。
但是,如果您确实能够捕获元标记,则可能需要选择内容:

//span[@class=' price']/meta/@content

或,如果您需要第一个文本字段,

//span[@class=' price']//text()[1]

也可能起作用。

不要忘记,当您执行//span/meta时,您将选择meta Node ,因此<meta content="14.400" itemprop="price">14.400(在任何地方结束,取决于使用XPath的内容,因为HTML已畸形)。如果需要内容,则需要选择@content属性或使用text()

最新更新