基于Jsoup的网络小说爬虫
一.HTML阅读
\ 与 之间的文本描述网页
\ 与 之间的文本是可见的页面内容
\ 与 之间的文本被显示为标题
\
与
之间的文本被显示为段落
二.Maven
1.Maven 是一款基于 Java 平台的项目管理和整合工具,只需要做一些简单的配置,Maven 就可以自动完成项目的编译、测试、打包、发布以及部署等工作。
2.Maven 是使用 Java 语言编写的,因此它和 Java 一样具有跨平台性.
3.Maven 坐标,任何一个构件都可以使用 Maven 坐标并作为其唯一标识,Maven 坐标包括 groupId(项目组 ID,取值一般是项目所属公司或组织的网址或 URL的反写)、artifactId( 项目 ID,通常是项目的名称)、version(版本)、packaging(项目的打包方式,默认值为 jar) 等元素,只要用户提供了正确的坐标元素,Maven 就能找到对应的构件,任何一个构件都必须明确定义自己的坐标.
4.依赖:如果一个 Maven 构建所产生的构件被其他项目引用,那么该构件就是其他项目的依赖。Maven 项目必须明确定义自己的坐标,才可能成为其他项目的依赖。
dependencies 元素可以包含一个或者多个 dependency 子元素,用以声明一个或者多个项目依赖,每个依赖都可以包含以下元素:
a. groupId、artifactId 和 version:依赖的基本坐标,对于任何一个依赖来说,基本坐标是最重要的,Maven 根据坐标才能找到需要的依赖。
b. type:依赖的类型,对应于项目坐标定义的 packaging。大部分情况下,该元素不必声明,其默认值是 jar。
c. scope:依赖的范围。
d. optional:标记依赖是否可选。
e. exclusions:用来排除传递性依赖。
5.在本次作业中,利用了project structrue将Spider打成了jar包
三.Jsoup
1.Jsoup是用于解析HTML的解析器 , 通过在Maven中导入Jsoup依赖,可以实现:
a.从URL,文件或字符串中刮取并解析HTML
b.查找和提取数据,使用DOM遍历或CSS选择器
c.操纵HTML元素,属性和文本
d.根据安全的白名单清理用户提交的内容,以防止XSS攻击
e.输出整洁的HTML
2.爬虫中使用到的Jsoup方法
a.从URL加载文档,使用Jsoup.connect()
方法从URL加载HTML。
b.从HTML获取标题调用 , 使用document.title()
方法获取HTML页面的标题。
c.从HTML获取内容调用 , 使用document.body()
方法获取HTML页面的主体内容。
d.从HTML选择标签 , 使用document.select()方法获取HTML标签下的内容。
四.JAVA异常
异常Throwable 分为
-
Error
-
Exception分为
a.CheckedException
Java中Checked异常都是可以被处理的异常,Java程序必须显示处理Checked异常。
当前方法知道如何处理该异常,则用try...catch块来处理该异常。
try {
// 要尝试的代码块
}
catch(Exception e) {
// 处理错误的代码块
}
当前方法不知道如何处理,则在定义该方法是声明抛出该异常。
public static void main(String[] args) throws Exception {
}
b.RuntimeException
五.正则表达式
字符类 | 解释 |
---|---|
[abc] | a或b或c |
[a-zA-Z] | a 到 z 或 A 到 Z ,两头的字母包括在内(范围) |
[a-d[m-p]] | a 到 d 或 m 到 p :[a-dm-p] (并集) |
[^abc] | 任何字符,除了 a 、b 或 c |
[a-z&&[def]] | d 、e 或 f (交集) |
[a-z&&[ ^bc]] | a 到 z,除了 b 和 c: [ad-z] |
[a-z&&[ ^m-p]] | a 到 z ,而非 m 到 p :[a-lq-z] |
预定义类 | 解释 |
---|---|
. | 任何字符 |
\d | 数字:[0-9] |
\D | 非数字: [^0-9] |
\s | 空白字符:[ \t\n\x0B\f\r] |
\S | 非空白字符:[^\s] |
\w | 单词字符:[a-zA-Z_0-9] |
\W | 非单词字符:[^\w] |
\ | 改变其后字符含义 |
数量词 | 解释 |
---|---|
X? | X,一次或一次也没有 |
X* | X,零次或多次 |
X+ | X,一次或多次 |
X{n} | X,恰好 n 次 |
X{n,} | X,至少 n 次 |
X{n,m} | X,至少 n 次,但是不超过 m 次 |
已在IDEA中引入any-rule,以便查阅各类要求的正则表达式.
六.产品介绍
1.小说爬虫Spider被打成了jar包
2.使用md格式保存了小说 , 小说的小说名,作者名,章节标题被设置成了不同等级的标题
3.添加了目录,并且赋予了每一章节的目录以超链接,使之可以调转回原网页
4.使用正则表达式及matches方法对比用户可能输入的内容(如URL) , 判断是否合法 , 采用了if结构完善了输出,对用户进行了较清晰的提示.