原文 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文档 采集随笔(续)相关推荐

  1. ubuntu系统阅读CHM文档的最终解决方案

    此方法仅为个人偏好,其他方法自行测试 原理:使用windows自带阅读器hh.exe,对系统中的chm文件类型自动关联 hh.exe 文件目录 C:/Windows/h.exe,请自行拷贝或下载 1. ...

  2. 如何生成项目的chm文档

    如何生成项目的chm文档 2014-11-30 Generate .chm based documentation of your project using SandCastle  tool 转载于 ...

  3. 生成chm文档工具- Sandcastle -摘自网络

    Sandcastle是微软官方的文档生成工具,NDoc开发停止后,这个貌似也是唯一的一个这方面的工具.它从dll文件及其xml注释文件能够 生成完整的帮助文档,支持多种生成格式(Helpe1x:chm ...

  4. DIY JavaAPI CHM文档

    通过javadoc命令生成的API文档是HTML格式的,查阅时候显得很不方便,习惯了CHM格式的文档,HTML格式的就没法看.有两个方法可以将其转换为chm格式,虽然不完美,但也html格式的强. 1 ...

  5. 发布CHM文档生成器 可替代 HTML Help Workshop,有全部C#源代码

    CHM文档生成器 现在的程序很多配备CHM格式的帮助文件,一般的开发者使用 HTML Help Workshop 来定义CHM文档,但操作不甚方便,而CHM文档生成器就可用来很方便的编辑CHM文档结构 ...

  6. 如何打开.chm文档(比如华为产品手册等)

    1.直接双击打开 2.双击打不开的话,右键.chm文档属性---常规---打开方式里面选择更改---更多选项---查找其他应用---在C盘中找到windows---双击hh.exe即可打开.

  7. chm文档的编辑办法

    做开发的时候经常依赖各种api文档,而这些api多数是chm格式的.CHM是英语"Compiled Help Manual"的简写,即"已编译的帮助文件".CH ...

  8. ubuntu下.chm文档查看工具

    以前在ubuntu下查看.chm帮助文档时,用的是chmsee这个虽然是中英问显示都还OK,但是有一点不好的就是,没有索引功能. 等你不知道你所找的那个函数是在那个包下时,是很难找到这个函数的. 今天 ...

  9. JDK 11 API中文帮助文档.CHM文档无法打开问题

    JDK 11 API中文帮助文档.CHM文档无法打开问题 1)开始–运行–输入"regedit",打开注册表,找到以下分支:找到计算机\HKEY_LOCAL_MACHINE\SOF ...

  10. poi doc转docx_编写简历及Python转Word文档为Pdf(续)

    续上文,讲述了前端求职面试,本文将讲述怎么找简历模板和怎么将Word文档转换pdf文件. [点击文末"阅读原文"即可查看我的简历(word版本.pdf版本)作为参考] 上文已说清楚 ...

最新文章

  1. 二分算法,选择,冒泡排序算法
  2. Java程序员从笨鸟到菜鸟之(七十八)细谈Spring(七)spring之JDBC访问数据库及配置详解
  3. Spring 初识Aop JDK动态代理实现 原理初显
  4. 【MCtalk讨论】 短视频平台出路在何方?
  5. 抽取+生成:一种基于背景知识的参考感知网络对话模型
  6. 关于css浮动的一点思考
  7. KVM虚拟机搭建增量镜像(一个基本镜像拷贝成无数多个子镜像)
  8. linux 权限加号是,请教:drwxrwxr-x   什么权限后面有个加号,代表什么意思
  9. vr降噪器英文是什么_耳机降噪功能这么多,说说什么是ANC、ENC、CV...
  10. 多线程与NSTimer
  11. vue项目使用阿里云播放器(aliyun)
  12. stagefright
  13. mvn 命令上传文件到 Maven 仓库
  14. 被认为是世界史上50个最伟大的发明有哪些?
  15. torch.nn.functional.normalize详解
  16. win10蓝屏提示重新启动_神器 | 那些好用到爆的win10修复优化软件,一键解决你的麻烦(一)...
  17. 对图标的坐标轴进行调整
  18. 本科生毕业设计选题——计算机类
  19. 芯片程序烧录的熔断机制与安全
  20. linux CentOS7安装VCS、Verdi、SCL

热门文章

  1. 高斯滤波程序编写 opencv C++ CSU
  2. Pycharm下安装Tensorflow问题(利用anaconda)
  3. 机器学习笔记-回归评价指标scikit-learn
  4. 重写Java中equals和hashcode方法的一般规则
  5. ArcGIS 城市生活区用地适宜性评价(一)
  6. 三维激光扫描数据处理理论及应用
  7. Android Studio Connection refused
  8. java输出流文件_Java文件输入输出流(封装类)
  9. Linux 常用命令大全(非常全!!!)
  10. canal与mysql高可用_canal 高可用介绍(4)