我正在将网页解析为Windows Phone 7,我需要知道更好的方法是什么。最重要的是性能。我在example with imdb that the author uses regex看到了,但我不确定如果我使用Html Agility Pack和Linq它会不会更好。
P.s。:我必须解析网站,而不是我的网站。
答案 0 :(得分:7)
使用Html Agility Pack和Linq将获得最佳效果。
答案 1 :(得分:0)
我偶然在研究类似的主题。我没有告诉你任何权威声明,因为它太早了。首先,我使用了3个引擎:
当然,还有很多选择(即使我曾经为Palm OS编写了一个简单的html查看器),但这似乎是一个好的开始。
Majestic没有提供Html->文本转换,只是一个示例代码如何遍历html字符串。首先,我实现了简单的转换:
然后我收集了50多个html文件的样本,并使用所有3种方法进行转换。我不得不说我对这两种方法都不满意。两个一般性意见:
所以我查看了Regex代码并在底部找到了一个无意义的循环。经过简单的优化后,Regex方法只慢了约25%。鉴于它有超过30个复杂的正则表达式替换,我认为这是一个很好的结果。
然后我写了一个测试html文件,其中包含所有常见的html标签以及更多内容。和以前一样,Majestic和Agility表现相似。
还有很多要测试的东西。例如编码。
此刻我只会说Regex似乎是一个更好的选择。但是,所提到的发动机都没有令人满意地发挥作用。从积极的方面来说,调整这些引擎(特别是Majestic和Regex)很容易。也许同样适用于Agility也是如此,但是,我并没有深入研究这个包装。