Linux wget 递归下载整站并转换成 chm 文档

这些天正在学习 Java Web 的相关知识,学习这方面的知识当然不能缺少 API 文档。不过当我要查询 javax.servlet 包下面相关的帮助文档时,发现 Java 自己的 API 文档中并没有包含这部分内容,于是就找到了 Tomcat 官网中的 API 文档: Servlet 4.0 API - Apache Tomcat 9.0.0.M26

之前下了个 Java 8 API 的 chm 文档,带有索引功能,用起来非常方便,所以我就想着自己将上面提到的文档网页下载到本地,并转换成 chm 文档。最后,顺利生成了 Servlet 4.0 API.chm 帮助手册,在这里把这一方法分享给大家,在其它地方也能派上用场。

wget 递归下载整站

示例:

wget -r -np -p -k https://tomcat.apache.org/tomcat-9.0-doc/servletapi/index.html

该命令会递归下载 index.html 页面中所有URL前缀为 https://tomcat.apache.org/tomcat-9.0-doc/servletapi/ 的页面,并将页面的绝对链接转换成相对链接,便于保存到本地后页面间的跳转。

选项含义

  • -r 即--recursive,递归下载遇到的所有链接
  • -np 即--no-parent,不追溯父级链接
  • -p 即--page-requisites,下载展示页面所必须的元素,例如图片
  • -k 即--convert-links,将绝对链接转换成相对链接

在这个场景中,上面这几个选项已经能很好地完成任务了。当然,wget 还提供了另外一些关于递归下载的选项,能够用于完成更加复杂的任务。

例如,可以使用 --accept=htm,html 来指定只下载后缀为 htm 或 html 的网页。使用 --reject=php 来排除后缀为 php 的网页。使用--domains=codebelief.com 来限定只下载 codebelief.com 域名下的网页。甚至可以使用 --accept-regex=REGEX 筛选出满足指定正则表达式的URL。

将 html 页面转换成 chm 文档

这里要用到一款名为 htm2chm 的工具,界面如图所示。

我们使用“编译”功能将网页转换成chm文档,如果你需要索引功能,即使用搜索框来搜索页面标题,那么可以在编译之前,使用“生成器”功能来生成网页的索引(Index)和目录(TOC)。

htm2chm 的用法相对简单,这里就不赘述了,大家可以自己探索。

示例文档

下图是最后生成的 Servlet 4.0 API 手册,点击此处下载 Servlet_4.0_API.chm

便捷的索引功能

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注