这些天正在学习 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。
便捷的索引功能
作者:Wray Zheng
原文:http://www.codebelief.com/article/2017/09/linux-wget-download-entire-website-and-convert-it-to-a-chm-file/