背景
最近在做爬虫项目,其中一个需求是将网页上的帮助文档,下载至本地并形成Markdown文档,方便离线查阅。
探索及解决
找到两个具有该功能的Java类库,如下
1 2 3 4 5 6 7 8 9 10
| <dependency> <groupId>com.kotcrab.remark</groupId> <artifactId>remark</artifactId> <version>1.0.0</version> </dependency> <dependency> <groupId>com.github.houbb</groupId> <artifactId>html2md</artifactId> <version>0.0.1</version> </dependency>
|
相比较之下,我选择了remark。
使用html2md进行格式转换之后,最终文档与预期的格式差异较大。
而remark转换后则较为中规中矩,比较符合实际使用中的Markdown语法。
1 2 3
| Remark remark = new Remark(); content = remark.convert(content);
|
转换前的Html
1 2 3
| <h3 id="12-总体架构">1.2 总体架构</h3> <p>WebMagic的结构分为<code>Downloader</code>、<code>PageProcessor</code>、<code>Scheduler</code>、<code>Pipeline</code>四大组件,并由Spider将它们彼此组织起来。这四大组件对应爬虫生命周期中的下载、处理、管理和持久化等功能。WebMagic的设计参考了Scapy,但是实现方式更Java化一些。</p> <p>而Spider则将这几个组件组织起来,让它们可以互相交互,流程化的执行,可以认为Spider是一个大的容器,它也是WebMagic逻辑的核心。</p>
|
转换后的Markdown
1 2 3 4 5
| ### 1.2 总体架构 ###
WebMagic的结构分为`Downloader`、`PageProcessor`、`Scheduler`、`Pipeline`四大组件,并由Spider将它们彼此组织起来。这四大组件对应爬虫生命周期中的下载、处理、管理和持久化等功能。WebMagic的设计参考了Scapy,但是实现方式更Java化一些。
而Spider则将这几个组件组织起来,让它们可以互相交互,流程化的执行,可以认为Spider是一个大的容器,它也是WebMagic逻辑的核心。
|