使用CHM文档 采集随笔(续)
原文 http://www.cnblogs.com/codealone/archive/2013/04/23/3037780.html
背景
上篇说到我们可以将自己的博客内随笔/文章/日记备份得到的xml 转换成CHM文档,如果我们希望将某个大牛的博客随笔全部导出,这个能不能实现呢?写在这里算是废话了,既然有了这篇博客,那么这个问题,一定是可以解决的。
资源下载
可执行程序
源代码
示例文档截图(路过秋天):
开发思路
1.根据博客园ID得到随笔类别,如地址为 http://www.cnblogs.com/cyq1162/,则博客园ID为cyq1162,请求页面http://www.cnblogs.com/cyq1162/mvc/blog/sidecolumn.aspx。请求结果如下:
通过正则匹配到该页面的链接,以某个链接为例,http://www.cnblogs.com/cyq1162/category/268820.html,其中包含cyq1162/category,基于这样的规则,我们可以得到所有的随笔分类链接。
2.得到随笔分类链接之后,则请求该链接的内容,得到该随笔下的所有文章链接。文章链接,以某个链接为例,http://www.cnblogs.com/cyq1162/archive/2013/03/17/2964746.html,其中包含cyq1162/archive,基于这样的规则,我们可以得到所有的文章链接。
3.得到文章的链接,这样就能得到文章正文。我们要获取的有文章标题、文章正文、发布时间。这里没有去尝试获取文章作者,不好获取。前面指的需要获取的3个内容,在某个明确id的节点里。这里使用了HtmlAgilityPack进行HTML解析,感觉非常方便,可以直接根据ID得到元素,然后获取它的内容。解析代码如下:
//下载随笔内容 替换后保存本地var contentCode = GetContent(articleUrl);//获取随笔内容HtmlDocument htmlCode = new HtmlDocument();htmlCode.LoadHtml(contentCode);var titleNode = htmlCode.GetElementbyId("cb_post_title_url");var postBody = htmlCode.GetElementbyId("cnblogs_post_body");var postDate = htmlCode.GetElementbyId("post-date");//var topics = htmlCode.GetElementbyId("topics");var localHtml = template.Replace("{channelTitle}", titleNode.InnerText)//博文标题.Replace("{preContent}", DownImage(postBody.InnerHtml))//博文内容.Replace("{channelHref}", titleNode.GetAttributeValue("href", "#"))//博文地址.Replace("{channelLink}", userId + ".cnblogs.com")//博客地址.Replace("{channelAuthor}", userId);//博文作者
4.下一步则是编译CHM了,这里就不重复介绍了。
其中参考啊汉的博文 《一键构造你的博客目录》 构造了随笔目录。
代码逻辑就这么多,比较简单,希望大伙喜欢。如果设置首页不显示随笔分类的话,是无法采集的,若是博客引用了自定义样式,需要手动添加该样式在。有其他的问题,可以向我反馈,也可以自己下载代码调试看看。
如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】按钮。
感谢阅读,希望这篇文章能给你带来帮助!
使用CHM文档 采集随笔(续)相关推荐
- ubuntu系统阅读CHM文档的最终解决方案
此方法仅为个人偏好,其他方法自行测试 原理:使用windows自带阅读器hh.exe,对系统中的chm文件类型自动关联 hh.exe 文件目录 C:/Windows/h.exe,请自行拷贝或下载 1. ...
- 如何生成项目的chm文档
如何生成项目的chm文档 2014-11-30 Generate .chm based documentation of your project using SandCastle tool 转载于 ...
- 生成chm文档工具- Sandcastle -摘自网络
Sandcastle是微软官方的文档生成工具,NDoc开发停止后,这个貌似也是唯一的一个这方面的工具.它从dll文件及其xml注释文件能够 生成完整的帮助文档,支持多种生成格式(Helpe1x:chm ...
- DIY JavaAPI CHM文档
通过javadoc命令生成的API文档是HTML格式的,查阅时候显得很不方便,习惯了CHM格式的文档,HTML格式的就没法看.有两个方法可以将其转换为chm格式,虽然不完美,但也html格式的强. 1 ...
- 发布CHM文档生成器 可替代 HTML Help Workshop,有全部C#源代码
CHM文档生成器 现在的程序很多配备CHM格式的帮助文件,一般的开发者使用 HTML Help Workshop 来定义CHM文档,但操作不甚方便,而CHM文档生成器就可用来很方便的编辑CHM文档结构 ...
- 如何打开.chm文档(比如华为产品手册等)
1.直接双击打开 2.双击打不开的话,右键.chm文档属性---常规---打开方式里面选择更改---更多选项---查找其他应用---在C盘中找到windows---双击hh.exe即可打开.
- chm文档的编辑办法
做开发的时候经常依赖各种api文档,而这些api多数是chm格式的.CHM是英语"Compiled Help Manual"的简写,即"已编译的帮助文件".CH ...
- ubuntu下.chm文档查看工具
以前在ubuntu下查看.chm帮助文档时,用的是chmsee这个虽然是中英问显示都还OK,但是有一点不好的就是,没有索引功能. 等你不知道你所找的那个函数是在那个包下时,是很难找到这个函数的. 今天 ...
- JDK 11 API中文帮助文档.CHM文档无法打开问题
JDK 11 API中文帮助文档.CHM文档无法打开问题 1)开始–运行–输入"regedit",打开注册表,找到以下分支:找到计算机\HKEY_LOCAL_MACHINE\SOF ...
- poi doc转docx_编写简历及Python转Word文档为Pdf(续)
续上文,讲述了前端求职面试,本文将讲述怎么找简历模板和怎么将Word文档转换pdf文件. [点击文末"阅读原文"即可查看我的简历(word版本.pdf版本)作为参考] 上文已说清楚 ...
最新文章
- 二分算法,选择,冒泡排序算法
- Java程序员从笨鸟到菜鸟之(七十八)细谈Spring(七)spring之JDBC访问数据库及配置详解
- Spring 初识Aop JDK动态代理实现 原理初显
- 【MCtalk讨论】 短视频平台出路在何方?
- 抽取+生成:一种基于背景知识的参考感知网络对话模型
- 关于css浮动的一点思考
- KVM虚拟机搭建增量镜像(一个基本镜像拷贝成无数多个子镜像)
- linux 权限加号是,请教:drwxrwxr-x 什么权限后面有个加号,代表什么意思
- vr降噪器英文是什么_耳机降噪功能这么多,说说什么是ANC、ENC、CV...
- 多线程与NSTimer
- vue项目使用阿里云播放器(aliyun)
- stagefright
- mvn 命令上传文件到 Maven 仓库
- 被认为是世界史上50个最伟大的发明有哪些?
- torch.nn.functional.normalize详解
- win10蓝屏提示重新启动_神器 | 那些好用到爆的win10修复优化软件,一键解决你的麻烦(一)...
- 对图标的坐标轴进行调整
- 本科生毕业设计选题——计算机类
- 芯片程序烧录的熔断机制与安全
- linux CentOS7安装VCS、Verdi、SCL