使用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了,这里就不重复介绍了。

 

  其中参考啊汉的博文 《一键构造你的博客目录》 构造了随笔目录。

  代码逻辑就这么多,比较简单,希望大伙喜欢。如果设置首页不显示随笔分类的话,是无法采集的,若是博客引用了自定义样式,需要手动添加该样式在。有其他的问题,可以向我反馈,也可以自己下载代码调试看看。

 

   如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】按钮。

   感谢阅读,希望这篇文章能给你带来帮助!

时间: 2024-08-31 09:44:47

使用CHM文档 采集随笔(续)的相关文章

如何在PHP中生成chm文档

一个类和hhc.exe还有hha.dll 用于生成包含html目录的chm项目文件 ,然后通过hhp项目文件和内容文件生成 .chm手册. <?php /* 函数 listDirTree( $dirName = null ) ** 功能 列出目录下所有文件及子目录 ** 参数 $dirName 目录名称 ** 返回 目录结构数组 false为失败 */ function listDir($dirName = null) { if (empty($dirName)) exit("IBFile

CHM 文档解包批处理代码_DOS/BAT

HH的脾气是目标文件夹路径不支持带空格或引号,所以变复杂了点,否则一行命令足矣 其他的代码没啥难度,重在实用 批处理代码如下: 复制代码 代码如下: ::主命令格式如下 ::hh -decompile 目标文件夹 CHM源文件名 ::目标文件夹及文件名均不能加引号,目标文件夹不能含空格 @echo off & setlocal enabledelayedexpansion title CHM 文档解包批处理 By SunTB if exist "%~dpnx1" ( set f

ADOX.Catalog中文帮助详细说明chm文档第1/3页_vbs

首先给个完全版的地址,如果您机器上装过OFFICE应该可以打开的:ADOX 对象模型, 地址是:"C:\Program Files\Common Files\Microsoft Shared\OFFICE11\2052\ADO210.CHM", 您可以在运行里输入:"hh.exe C:\Program%20Files\Common%20Files\Microsoft%20Shared\OFFICE11\2052\ADO210.CHM::/htm/admscobjectmode

chm文档转html文件

在Windows下chm转换为html的超简单方法(反编译CHM文件的方法) 通过调用Windows命令,将chm 文件转换为html 文件. 方法: 命令行(cmd),输入hh -decompile <输出文件夹路径> <要反编译的CHM文件全路径名> 例如: win+r 键,弹出运行窗口输入命令cmd回车,然后输入: hh -decompile C:JAVA1_6 D:/chm/java1_6.chm 实例: C:\Users\Administrator>d: D:>

工具分享——将C#文档注释生成.chm帮助文档

原文:工具分享--将C#文档注释生成.chm帮助文档 由于最近需要把以前的一个项目写一个文档,但一时又不知道写成怎样的,又恰好发现了可以生成chm的工具,于是乎我就研究了下,感觉还不错,所以也给大家分享下.好了,不多废话,下面就来实现一下吧. 生成前的准备 在开始做之前,还是要补充说明一点:我们是通过C#文档注释生成的XML文件来生成帮助文档的.因此,第一步就是生成XML文档: 具体步骤:打开VS->随意创建一个项目(这里我用的是控制台项目),然后添加如下内容: /// <summary>

smarty3.0中文手册文档API及使用指南

Smarty2.0在线手册 http://www.php100.com/manual/smarty Smarty3.0在线手册 http://www.php100.com/manual/smarty3   1.安装Smarty3.0 一.什么是smarty? smarty是一个使用PHP写出来的模板PHP模板引擎,它提供了逻辑与外在内容的分离,简单的讲, 目的就是要使用PHP程序员同美工分离,使用的程序员改变程序的逻辑内容不会影响到美工的页面设计, 美工重新修改页面不会影响到程序的程序逻辑,这在

.NET平台开源项目速览(4).NET文档生成工具ADB及使用

原文:.NET平台开源项目速览(4).NET文档生成工具ADB及使用     很久以前就使用ADB这个工具来生成项目的帮助文档.功能强大,在学习一些开源项目的过程中,官方没有提供CHM帮助文档,所以为了快速的了解项目结构和注释.就生成文档来自己看,非常好用.这也是一个学习方法吧.例如本文在: .NET平台开源项目速览(2)Compare .NET Objects对象比较组件 .NET平台开源项目速览(3)小巧轻量级NoSQL文件数据库LiteDB 上述2篇文章中最后的资源中就手动制作了CHM帮助

[置顶].NET平台开源项目速览(4).NET文档生成工具ADB及使用

    很久以前就使用ADB这个工具来生成项目的帮助文档.功能强大,在学习一些开源项目的过程中,官方没有提供CHM帮助文档,所以为了快速的了解项目结构和注释.就生成文档来自己看,非常好用.这也是一个学习方法吧.例如本文在: .NET平台开源项目速览(2)Compare .NET Objects对象比较组件 .NET平台开源项目速览(3)小巧轻量级NoSQL文件数据库LiteDB 上述2篇文章中最后的资源中就手动制作了CHM帮助文档.有时候我们还可以对源码进行翻译,再制作,效果还不错.今天介绍的A

.Net工具 - .NET文档生成工具2.2

ADB2.2下载   ADB2.2源代码下载 一.概述 程序的注释在程序的编写和维护中扮演着相当重要的角色,在生成工程的同时,说明文档也随之而生了..NET文档生成工具用于将xml 文档注释生成格式类似MSDN的HTML帮助文档,并编译为CHM文档(下文中将该工具称为ADB,该软件仅测试过.net2.0的程序集). 二.ADB2.2的功能特点 1.支持合并多个程序集: 2.自动搜索程序集及其引用的程序集对应的XML文档(包括.Net自带的程序集,如:system.xml): 3.灵活控制在文档中