您的位置:首页 > 其它

.NET备份博客园随笔分类文章

2016-10-13 14:58 246 查看
之前用.NET做网页采集实现采用正则表达式去匹配解析,比较繁琐,花费时间较多,若是Html复杂的话真是欲哭无泪。
很早就听过包HtmlAgilityPack,其是在.NET下用XPath来解析的HTML的一个类库(包)。但是一直没时间尝试,简单了解了下HtmlAgilityPack的API后,发现真是HTML解析利器,于是花些时间做一个例子记录下。

本次是以下载博客园随笔分类文章为例,采用两部分实现,第一部分是将采集到的文章放到集合变量中,第二部分是通过操作集合变量将文章下载到本地,
这样做效率较低,因为可以直接边采集文章边下载。暂时没有考虑效率问题,仅仅只是实现功能。下面简单阐述下。

获取随笔分类

根据输入的博客名取得对应的随笔分类。

var types = GettBlogTypeList(uname);

long time1 = 0;

long time2 = 0;

long timeDownload = 0;

Console.WriteLine("正在爬取,请耐心等待..." );

var blogList = GetBlogsByType(types,out time1);

var blogDetailList = GetBlogDetail(blogList,out time2);

Console.WriteLine("爬取完毕,开始下载..." );

string filePath=DowanloadBlog(blogDetailList, uname,out timeDownload);

Console.WriteLine("**处理完毕,爬取用时{0}ms,下载用时{1}ms,{2}" , time1+time2, timeDownload, filePath);

handlerRight = false;


View Code

演示效果



文件存储在项目bin目录下,一个用户一个文件夹





按随笔分类生成不同的文件夹



生成.html文件,一个分类的所有图片都存在该分类下的images下。





完整源码放在github下,https://github.com/kungge/CommonTest/tree/dev/WebCollect

欢迎指出程序bug,提出优化意见,(●'◡'●)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐