解析HTML用哪个更好【HtmlAgilityPack VS正则】

OROCHIORI616 2011-12-16 08:18:27
解析html,用正则和用HtmlAgilityPack哪个性能更好啊(就不问哪个更容易用了,显然HtmlAgilityPack比正则用起来简单的多)?用HtmlAgilityPack的话碰到太大的网页是不是会很慢阿(因为相比正则分析,有个html转化成转化成xml的过程)。还有灵活性方面哪个更好,高手说说,谢谢了!!


另:求个正则表达式生成工具
应该有很多款吧,推荐个最强大的吧。有经验的高手说说。
PS:要是有C#开源的正则生成工具,那就推荐带C#开源的工具,开源有诱惑力啊
...全文
374 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
dongt1 2011-12-19
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 maco_wang 的回复:]

正则表达式生成工具我没用听说过...
[/Quote]++这个东东没有,正如楼上大神们所言有这个就不用学了。
cainiao13579 2011-12-19
  • 打赏
  • 举报
回复
没有生成的工具,有个测试工具
todd_wang 2011-12-19
  • 打赏
  • 举报
回复
正则的速度有些怀疑,没有研究过正则类库是怎么实现的,我比较怀疑它也是用托管代码实现的,无非也是一个字符一个字符的处理, 不断的匹配、回溯, 过程也不太可能比 HtmlAgilityPack(没用过,我假设它采用了SAX类似的实现) 快。 匹配复杂的变化多端的正则 理论上要比匹配简单的较固定的html规则更复杂缓慢。

PS:正则表达式可以编译的(个人认为编译结果为.net程序集),编译本身耗时,但可以提高执行的效率。
叶子 2011-12-18
  • 打赏
  • 举报
回复
正则表达式生成工具我没用听说过...
OROCHIORI605 2011-12-17
  • 打赏
  • 举报
回复
谢谢无机战士的精彩评论 UP
诺维斯基 2011-12-17
  • 打赏
  • 举报
回复
别想歪了,

没有正则生成工具,要是真有,谁还学正则啊

只有测试工具。
OROCHIORI605 2011-12-17
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 shikun220 的回复:]
我现在也遇到这问题,由于解析的比较复杂,用正则非常慢,不知道怎么办
http://topic.csdn.net/u/20111217/11/4b7e82d0-9b99-4394-8045-c06541fab955.html?seed=488203659&r=76972869#r_76972869
[/Quote]
你的帖子我看了 速度学习HtmlAgilityPack 一天就能学会
你那些功能 用HtmlAgilityPack 几分钟就能写好 而且相当稳定
shikun220 2011-12-17
  • 打赏
  • 举报
回复
我现在也遇到这问题,由于解析的比较复杂,用正则非常慢,不知道怎么办
http://topic.csdn.net/u/20111217/11/4b7e82d0-9b99-4394-8045-c06541fab955.html?seed=488203659&r=76972869#r_76972869
村长_乐 2011-12-17
  • 打赏
  • 举报
回复
正则!!!
LMAOhuaNL 2011-12-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dalmeeme 的回复:]

多数情况下性能应该HtmlAgilityPack好些,对于大网页,可以先用普通的字符串方法截取所需的元素块区域做为html文档,再施用这个东西,效率应该不错。
正则测试推荐Convert.Net这个工具,里面包含很多实用功能,如html、url编码解码、正则测试、vb同c#互转、谷歌翻译、xml和json解析、加密解密等。
[/Quote]
力挺
orain 2011-12-16
  • 打赏
  • 举报
回复
如果正则很简单,就用正则,如果正则很复杂,就用 HtmlAgilityPack,因为通常复杂的正则式要不断的回溯才能匹配到正确格式的字符串,非常影响性能的,况且复杂的正则也不好写。
q107770540 2011-12-16
  • 打赏
  • 举报
回复
[Quote=引用楼主 orochiori616 的回复:]
另:求个正则表达式生成工具

[/Quote]
还有这个工具? 只用过调试工具,没用过生成工具
dalmeeme 2011-12-16
  • 打赏
  • 举报
回复
正则也很重要,我觉得正则是一个合格专业软件开发人员必须掌握的东西。
dalmeeme 2011-12-16
  • 打赏
  • 举报
回复
至于灵活性那还用说吗?当然是Dom的方式好,它甚至可以在抓取的html里进行插入、删除元素。用正则要繁一些。
1800包吃包住 2011-12-16
  • 打赏
  • 举报
回复
学正则吧 学好了正则 很有帮助的!
dalmeeme 2011-12-16
  • 打赏
  • 举报
回复
多数情况下性能应该HtmlAgilityPack好些,对于大网页,可以先用普通的字符串方法截取所需的元素块区域做为html文档,再施用这个东西,效率应该不错。
正则测试推荐Convert.Net这个工具,里面包含很多实用功能,如html、url编码解码、正则测试、vb同c#互转、谷歌翻译、xml和json解析、加密解密等。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧