# **奇伢爬虫使用介绍**
----------
## **导航**
----------
1. [简介](https://github.com/qiyaTech/javaCrawling#一.简介)
2. [运行项目](https://github.com/qiyaTech/javaCrawling#运行项目)
* [运行环境](https://github.com/qiyaTech/javaCrawling#运行环境)
* [运行必备配置](https://github.com/qiyaTech/javaCrawling#运行必备配置)
* [项目运行](https://github.com/qiyaTech/javaCrawling#项目运行)
* [运行效果及爬取操作](https://github.com/qiyaTech/javaCrawling#运行效果及爬取操作)
3. [爬取网站文章操作手册](https://github.com/qiyaTech/javaCrawling#爬取网站文章操作手册)
4. [爬取文章配置手册](https://github.com/qiyaTech/javaCrawling#爬取文章配置手册)
* [微信公众号爬取配置](https://github.com/qiyaTech/javaCrawling#微信公众号爬取配置)
* [普通网站爬取配置](https://github.com/qiyaTech/javaCrawling#普通网站爬取配置)
5. [爬取效果展现](https://github.com/qiyaTech/javaCrawling#爬取效果展现)
## 一.**简介**
----------
[奇伢爬虫](https://github.com/qiyaTech/javaCrawling)基于spring boot 、 WebMagic 实现 微信公众号文章、新闻、csdn、info等网站文章爬取,可以动态设置文章爬取规则、清洗规则,基本实现了爬取大部分网站的文章。
#### **(奇伢爬虫技术讨论群:365155351,大家可以加群一起来讨论哦~)**
## 二.**运行项目**
----------
###
### 1.**运行环境**
项目开发环境:IntelliJ IDEA 15 , **JDK 1.8**
### 2.**运行必备配置**
#### 2.1.**数据库配置**
* 先创建数据库,然后修改配置文件[application-dev.properties](https://github.com/qiyaTech/javaCrawling/blob/master/boss/src/main/resources/application-dev.properties)的如下属性:
* ```spring.datasource.url = jdbc:mysql:// 数据库ip地址 : 数据库端口号/数据库名称?useUnicode=true&characterEncoding=UTF-8```
* ```spring.datasource.username = 数据库用户名```
* ```spring.datasource.password = 数据库密码```
#### 2.2.**数据导入**
我们提供了一些基础数据供大家测试,在新建的数据库中执行文件[db_sql.txt](https://github.com/qiyaTech/javaCrawling/blob/master/boss/src/main/resources/data/db_sql.txt)中的sql,就可以将一些必备的表及数据导入数据库了。
#### 2.3.**redis 配置**
* 项目中用到 redis 对一些数据的存储, 如果之前没有安装过 redis, 需要先安装 redis ,然后修改配置文件 [application-dev.properties](https://github.com/qiyaTech/javaCrawling/blob/master/boss/src/main/resources/application-dev.properties)的如下属性:
* ```spring.redis.host = redis ip 地址```
* ```spring.redis.password = redis 密码```
* ```spring.redis.port = redis 端口```
#### 2.4.**七牛云存储配置**
* 注册七牛云账号,登录后在控制台新建“存储空间“,(保存存储空间的名称,配置会用到),并在“个人中心——密钥管理“中查看 ak 与 sk。
* 修改配置文件 [application-dev.properties](https://github.com/qiyaTech/javaCrawling/blob/master/boss/src/main/resources/application-dev.properties)的如下属性:
* `qiniu.bucket = 七牛存储空间名称`
* `qiniu.accessKey = 七牛 ak`
* `qiniu.secretKey = 七牛 sk`
* `qiniu.http.co
ntext = 七牛外链域名`
### 3.**项目运行**
* 完成了[运行必备配置](https://github.com/qiyaTech/javaCrawling#运行必备配置)就可以运行项目了**(注:上述配置步骤缺一不可哦~~)**
* 启动项目只需要运行java文件[BossApplication.java](https://github.com/qiyaTech/javaCrawling/blob/master/boss/src/main/java/com/qiya/boss/BossApplication.java)就可以了。

* 项目成功启动后,访问 http://localhost:8015 进入爬虫管理平台。
* 平台登录用户名:admin
* 平台登录密码:admin
### 4.**运行效果及爬取操作**
* 成功登录爬虫管理平台后的界面*(当你看到这个界面时就说明你已成功启动项目了~~)*:

* **爬取操作:**
项目已经运行起来了,现在我们就来看一下怎么爬取一个网站的文章吧。(现在你打开的爬取平台上已经有了我们做好的一些爬取任务配置,只需要按照下面的步骤操作就可以爬取到很多文章了~接下来想自己试着爬取某网站文章可参照[爬取网站文章操作手册](https://github.com/qiyaTech/javaCrawling#爬取网站文章操作手册)。
* (1).请点击界面上左侧菜单:“爬虫管理“——“任务监控管理“,可以看到有一些我们配置好的爬取任务,下图是“任务监控管理“界面,以及对个别参数进行了说明:

* (2).**执行爬取任务:**接下来我们点击“运行“按钮,这时你可以去查看下控制台,控制台中有输出爬取文章的日志。
* (3).**查看爬取的文章**:我们将爬取到的文章进行解析后保存到了数据库中。
* 你可以在表 “**article**“ 中查看到爬取文章的相关属性:文章标题、作者、列表图片url、发布时间、点赞数、浏览数等等。
* 在表 “**article_detail**“ 中可以查看到爬取文章的内容。
* (4).**清洗爬取的文章:**清洗,即是对所爬文章的样式的调整。具体操作如下:
* 点击你刚爬取任务对应的“清洗“按钮,会出现如下界面:

* 这个清洗界面中会显示出你爬取的文章,你可以针对个别文章进行清洗,也可以一次性选中多条,或全部清洗。
* 清洗完成后你可以在 “article_detail“ 中找到对应的文章内容,看下与之前对比是不是样式有了一些变化呢~
*(到这里,整个爬取文章以及清洗的操作就完成了。)*
## 三.**爬取网站文章操作手册**
----------
这里主要向大家介绍爬取一个网站文章的具体配置操作:
* 1.**添加站点:**
* 站点即是各个网站或公众号。爬取网站文章首先要添加一个站点,下图是站点管理界面:

* 添加站点界面如下图,添加站点是爬取文章的第一步。

* 2.**添加爬取任务:**
* 任务是对每个站点爬取任务进行管理的,我们每个站点可以有多个爬取任务,这里我们主要针对两种情况进行爬取(**具体爬取的任务配置在[爬取文章的配置手册](https://github.com/qiyaTech/javaCrawling#爬取文章的配置手册)中有详细说明**):
1. 对网站或公众号每日更新文章进行爬取;
2. 对网站或公众号历史文章进行爬取。
* 任务管理界面如下:

* 添加任务:

添加任务时,大家要注意两个字段哦:
1. **是否需要手动执行:**
如果选择需要手动执行,则每次重启完项目后需要手动点击 **“任务监控管理“** 界面中对应任务的启动按钮哦~ 否则每次重启完项目后系统中会自动启动爬取任务的。
2. **是否定时执行:**
如果选择定时执行,则在任务启动后系统中每天会有两个时间点定时去爬取文章,否则会一直爬取哦~(在爬取一定时间后线程会休眠一段时间,再继续爬取的)
添加任务最重要的是任务规则配置,详见[爬取文章配置手册](https://github.com/qiyaTech/javaCrawling#爬取文章的配置手册)。
*(添加完任务后就可以执行爬取任务了,爬取任务的操作我们上面已经讲过了哦~)*
## 四.**爬取文章配置手册**