文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

JS下常见的HTML解析库有哪些

2024-04-02 19:55

关注

这篇文章主要为大家展示了“JS下常见的HTML解析库有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JS下常见的HTML解析库有哪些”这篇文章吧。

DOMParser

JavaScript和jQuery的DOM操作功能非常适合简单HTML片段的解析。在实际编程中,如果要以编程方式解析DOM完整HTML或XML,则需要一个更好的解决方案,那就是DOMParser,它是所有现代数浏览器都支持的功能。

JS下常见的HTML解析库有哪些

通过使用DOMParser,可以轻松解析HTML文档。但是,一般需要通过欺骗浏览器来实现解析,比如,通过向当前文档添加新元素。

DOMParser的用法非常简单明了:

let domParser = new DOMParser(); let doc = domParser.parseFromString(stringContainingXMLSource, "application/xml"); domParser = new DOMParser(); doc = domParser.parseFromString(stringContainingSVGSource, "image/svg+xml"); domParser = new DOMParser(); doc = domParser.parseFromString(stringContainingHTMLSource, "text/html");

Cheerio

专为服务器设计的核心jQuery的快速,灵活和精致的实现。

Cheerio看起来像jQuery,但是不支持浏览器。Cheerio可以解析HTML并使其易于操作,但不会像浏览器中那样解释HTML,解析出与浏览器不同的内容,并且解析的结果不会直接发送给用户。

Cheerio实现了jQuery子集,去掉了jQuery中所有与DOM不一致或者是用来填补浏览器的东西,重现了jQuery最美妙的API

由于使用了极其简洁而又标准的DOM模型, Cheerio对文档的转换,操作,渲染都极其的高效。

JavaScript开发人员都应该熟悉Cheerio的语法和用法:

var chro = require('cheerio'), $ = chio.load('<h2 class="title">Hello World!</h2>'); $('h2.title').text('Hello Chongchong!'); $('h2').attr('id', 'welcome'); $.html();结果:<h2 class="title" id=" welcome ">Hello Chongchong!</h2>

jsdom

JS下常见的HTML解析库有哪些

jsdom是很多Web标准(尤其是WHATWG DOM和 HTML 标准)纯JavaScript实现,可与Node.js结合使用。jsdom项目的目标是模拟Web浏览器的子集,从而满足测试和抓取实际的Web应用程序。

jsdom不仅仅是HTML解析器,它还可以当成浏览器。在解析的上下文中,如果要解析的数据中省略了必要的标记,它会自动添加必要的标记。例如,如果没有html标签,它将像浏览器一样隐式地添加它。

还可以选择指定一些属性,例如文档,引荐来源网址或用户代理的URL。如果需要解析包含本地URL的链接,则该URL特别有用。

由于它实际上与解析无关,因此只提到jsdom具有(虚拟)控制台,对cookie的支持等。总之,需要模拟浏览器环境

它还可以处理外部资源。如有需求jsdom可以用来加载并执行JS脚本。

const jsdom = require("jsdom"); const { JSDOM } = jsdom;const dom = new JSDOM('<!DOCTYPE html><p>Hello, Chongchong!</p>'); console.log(dom.window.document.querySelector("p").textContent);

结果:

"Hello, Chongchong!"

parse5

JS下常见的HTML解析库有哪些

parse5提供了处理HTML时所需的几乎所有内容。Parse5库,目标是构建其他工具,但也可以实现HTML解析以完成简单任务。Parse5易于使用,但是并不提供浏览器为提供的操作DOM的方法(例如getElementById)。

parse5衍生出了一系列采用它的令人印象深刻的项目:jsdom,Angular2和Polymer。如果需求为对HTML的高级操作或解析的可靠基础,那么显然这是一个不错的选择。

const parse5 = require('parse5');  const document = parse5.parse('<!DOCTYPE html><html><head></head><body>Hello Chongchong!</body></html>');  console.log(document.childNodes[1].tagName);

以上是“JS下常见的HTML解析库有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯