基于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结构完善了输出,对用户进行了较清晰的提示.