gpt4 book ai didi

html - 如何使用nodejs模块使用xpath提取html内容

转载 作者:行者123 更新时间:2023-12-04 18:03:56 25 4
gpt4 key购买 nike

我正在寻找使用 xpath 的 html 内容提取器,我已经看到了各种 nodejs 模块,例如

jsdom, htmlparser2, xpath, cheerio

我发现 cheerio 更适合使用类、id、标签等获取数据,但我无法通过指定 xpath 获取数据,而通过使用 xpath nodejs 模块,我能够使用 xpath 获取较小 html 和较长 html 的数据它给出不同类型的错误,如

entity not found:  @#[line:120,col:9], unclosed xml attribute @#[line:1,col:877]

注意:我无权以任何方式更改html

例如如果我的 html 是

<html>
<body>

<div>

<ul id="fruits">
<li class="apple">Apple</li>
<li class="orange">Orange</li>
<li class="pear">Pear</li>
</ul>

</div>

</body>


</html>

如果我正在使用它并给这个 xpath //*[@id="fruits"]/li[2] 来使用 xpath nodejs 模块查找元素,我不会收到任何错误并且使用 xpath nodejs 模块得到的结果为 Orange,但是如果我使用此页面的 html http://www.infotaxi.org/india_taxi/ahmedabad_taxi.htm

(相当长),并使用 xpath 访问文本部分

//*[@id="navlistmeniu"]/li[3]/a/b, 

我遇到错误

entity not found:  @#[line:120,col:9]

使用 Cheerio 我能够使用类、id、标签等而不是 xpath 提取数据

请帮忙????

最佳答案

我想这就是你的答案xpath-html ,自己测试一下:

const xpath = require("xpath-html");
const node = xpath.fromPageSource(html).findElement("//*[contains(text(), 'with love')]");

关于html - 如何使用nodejs模块使用xpath提取html内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30254814/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com