Ita*_*vka 88 server-side html-parsing node.js
我需要解析(服务器端)大量的HTML页面.
我们都同意regexp不是这里的方式.
在我看来,javascript是解析HTML页面的本地方式,但该假设依赖于具有javascript在浏览器中具有的所有DOM能力的服务器端代码.
Node.js内置了这种能力吗?
有没有更好的方法解决这个问题,解析服务器端的HTML?
kzh*_*kzh 80
您可以使用npm模块jsdom和htmlparser在Node.JS中创建和解析DOM.
其他选择包括:
在所有这些选项中,我更喜欢使用Node.js选项,因为它使用标准的W3C DOM访问器方法,我可以在客户端和服务器上重用代码.我希望BeautifulSoup的方法更类似于W3C dom,我认为将HTML转换为XHTML来编写XSLT只是简单的虐待狂.
Mee*_*ohi 60
使用Cheerio.它不像jsdom那样严格,并且针对刮擦进行了优化.作为奖励,使用您已经知道的jQuery选择器.
❤熟悉的语法:Cheerio实现了核心jQuery的一个子集.Cheerio从jQuery库中删除了所有DOM不一致和浏览器残骸,揭示了它真正华丽的API.
ϟ超快速:Cheerio使用非常简单,一致的DOM模型.因此,解析,操作和渲染非常有效.初步的端到端基准测试表明,cheerio比JSDOM快约8倍.
❁疯狂灵活:Cheerio环绕@ FB55宽容的htmlparser.Cheerio几乎可以解析任何HTML或XML文档.
Rtm*_*tmY 21
我搜索了顶级 NodeJS html 解析器库。
因为我的用例不需要具有许多功能的库,所以我可以专注于稳定性和性能。
我所说的稳定性是指我希望社区能够使用该库足够长的时间,以便发现错误,并且仍将对其进行维护,并且将解决未解决的问题。
很难理解一个开源库的未来,但我根据openbase中排名前 10 的库做了一个小小的总结。
我根据最后一次提交分为 2 组(每组的顺序按照 Github 开始):
最后一次提交是在过去 6 个月内:
jsdom- . Last commit: 3 Months, Open issues: 331, Github stars: 14.9K
htmlparser2 - Last commit: 8 days, Open issues: 2, Github stars: 2.7K
.
解析5 - Last commit: 2 Months, Open issues: 21, Github stars: 2.5K
.
swagger 解析器- Last commit: 2 Months, Open issues: 48, Github stars: 663
.
html-parse-stringify - Last commit: 4 Months, Open issues: 3, Github stars: 215
.
节点 html 解析器- Last commit: 7 days, Open issues: 15, Github stars: 205
.
最后一次提交是 6 个月及以上:
欢呼- Last commit: 1 year, Open issues: 174, Github stars: 22.9K
.
koa-bodyparser - Last commit: 6 months, Open issues: 9, Github stars: 1.1K
.
萨克斯-js - Last commit: 3 Years, Open issues: 65, Github stars: 941
.
Draftjs-to-html - Last commit: 1 Year, Open issues: 27, Github stars: 233
.
我选择 Node-html-parser 是因为它此时看起来安静快速且非常活跃。
(*) Openbase 添加了有关每个库的更多信息,例如贡献者数量(+3 次提交)、每周下载量、每月提交量、版本等。
(**) 上表是根据具体时间和日期的快照 - 我会再次检查参考,并作为第一步检查最近的活动水平,然后深入研究较小的细节。
使用htmlparser2,它的方式更快,更简单.请参考此用法示例:
https://www.npmjs.org/package/htmlparser2#usage
这里的现场演示:
http://demos.forbeslindesay.co.uk/htmlparser2/
FB55的Htmlparser2似乎是一个不错的选择.
归档时间: |
|
查看次数: |
110809 次 |
最近记录: |