2010年8月26日星期四

运用NCrawler、HtmlAglityPack、NPOI抓取网页

首先需要到codeplex上下载最新的NCrawler、HtmlAglitypack、NPOI,

其次研究下NCrawler的demo,理解其处理流程,基本接口的功能。NCrawler是很方便扩展的,只要实现自己的IPileStep即可,另外个人觉得propertyBag[index],这个索引相当的有用,在应用的时候,我增加了一个新的propertyBag["html"]方便在自己的IPipleStep下处理html,提取想要的数据保存至excel中。

再次其中遇到一个htmlAglitypack的问题,初次使用了,他的demo也超级简单,当html不是太规范的时候,htmlAglitypack -》 selectnodes 是失效的,不起作用的, 我遇到的情况是下载的html中 包含大量的 ‘\r\n’,全部replace后,再处理,过滤,问题就不大了!

最后提取的数据是保存到excle里面,NPOI真的很好用,对基本的需求基本都OK,他的文档例子也超级丰富,我只看了现在需要的例子,全面的发掘他的功能还有看有没有机会了。

NCrawler的作者真的超级热情的,提问很快就会被答复 ,如果你有疑问,在其codeplex,讨论区,可以先搜索想要找的答案,一般的类似blacklist,正则过滤,等都能找到,要是没有就new post吧。

总结下,这次抓取了某网站的某些数据近万条,开发到测试历时2天,自己感觉还是比较满意,特别是最后优化抓取速度的时候,采用blacklist + InMemory 方式速度提高了N倍。。。
也小小满足了吧。

夜深了。。。

再看看,Solr,Solr.net... 研究下这个超级的FullTextIndex Server。。。


加油!

没有评论: