导航
一.简介
奇伢爬虫基于spring boot 、 WebMagic 实现 微信公众号文章、新闻、csdn、info等网站文章爬取,可以动态设置文章爬取规则、清洗规则,基本实现了爬取大部分网站的文章。
(奇伢爬虫技术讨论群:365155351,大家可以加群一起来讨论哦~)
二.运行项目
###
1.运行环境
项目开发环境:IntelliJ IDEA 15 , JDK 1.8
2.运行必备配置
2.1.数据库配置
- 先创建数据库,然后修改配置文件application-dev.properties的如下属性:
1
* ```spring.datasource.username = 数据库用户名
1
2
3
4
5
6
7
#### 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 地址1
* ```spring.redis.port = redis 端口
2.4.七牛云存储配置
注册七牛云账号,登录后在控制台新建“存储空间“,(保存存储空间的名称,配置会用到),并在“个人中心——密钥管理“中查看 ak 与 sk。
修改配置文件 application-dev.properties的如下属性:
qiniu.bucket = 七牛存储空间名称
qiniu.accessKey = 七牛 ak
qiniu.secretKey = 七牛 sk
qiniu.http.context = 七牛外链域名
3.项目运行
完成了运行必备配置就可以运行项目了(注:上述配置步骤缺一不可哦~~)
启动项目只需要运行java文件BossApplication.java就可以了。
项目成功启动后,访问 http://localhost:8015 进入爬虫管理平台。
平台登录用户名:admin
平台登录密码:admin
4.运行效果及爬取操作
- 成功登录爬虫管理平台后的界面(当你看到这个界面时就说明你已成功启动项目了~~):
- 爬取操作:
项目已经运行起来了,现在我们就来看一下怎么爬取一个网站的文章吧。(现在你打开的爬取平台上已经有了我们做好的一些爬取任务配置,只需要按照下面的步骤操作就可以爬取到很多文章了~接下来想自己试着爬取某网站文章可参照爬取网站文章操作手册。
- (1).请点击界面上左侧菜单:“爬虫管理“——“任务监控管理“,可以看到有一些我们配置好的爬取任务,下图是“任务监控管理“界面,以及对个别参数进行了说明:
(2).执行爬取任务:接下来我们点击“运行“按钮,这时你可以去查看下控制台,控制台中有输出爬取文章的日志。
(3).查看爬取的文章:我们将爬取到的文章进行解析后保存到了数据库中。
你可以在表 “article“ 中查看到爬取文章的相关属性:文章标题、作者、列表图片url、发布时间、点赞数、浏览数等等。
在表 “article_detail“ 中可以查看到爬取文章的内容。
(4).清洗爬取的文章:清洗,即是对所爬文章的样式的调整。具体操作如下:
- 点击你刚爬取任务对应的“清洗“按钮,会出现如下界面:
这个清洗界面中会显示出你爬取的文章,你可以针对个别文章进行清洗,也可以一次性选中多条,或全部清洗。
清洗完成后你可以在 “article_detail“ 中找到对应的文章内容,看下与之前对比是不是样式有了一些变化呢~
(到这里,整个爬取文章以及清洗的操作就完成了。)
三.爬取网站文章操作手册
这里主要向大家介绍爬取一个网站文章的具体配置操作:
1.添加站点:
站点即是各个网站或公众号。爬取网站文章首先要添加一个站点,下图是站点管理界面:
- 添加站点界面如下图,添加站点是爬取文章的第一步。
2.添加爬取任务:
任务是对每个站点爬取任务进行管理的,我们每个站点可以有多个爬取任务,这里我们主要针对两种情况进行爬取(具体爬取的任务配置在爬取文章的配置手册中有详细说明):
- 对网站或公众号每日更新文章进行爬取;
- 对网站或公众号历史文章进行爬取。
- 任务管理界面如下:
- 添加任务:
添加任务时,大家要注意两个字段哦:
是否需要手动执行:
如果选择需要手动执行,则每次重启完项目后需要手动点击 “任务监控管理“ 界面中对应任务的启动按钮哦~ 否则每次重启完项目后系统中会自动启动爬取任务的。是否定时执行:
如果选择定时执行,则在任务启动后系统中每天会有两个时间点定时去爬取文章,否则会一直爬取哦~(在爬取一定时间后线程会休眠一段时间,再继续爬取的)
添加任务最重要的是任务规则配置,详见爬取文章配置手册。
(添加完任务后就可以执行爬取任务了,爬取任务的操作我们上面已经讲过了哦~)
四.爬取文章配置手册
网站爬取任务规则配置
1.任务规则配置参数介绍:
- 任务规则配置参数如下图:
- 参数说明:
- spider : 爬虫配置信息;
- site : 站点信息;
- condition:历史文章爬取条件(只限于历史爬取使用,爬取更新可去掉此参数);
- rule : 爬取内容的规则配置;
- wechat: 爬取内容的规则配置;
- rinseRules : 清理数据配置;
- isCircle : 是否需要循环爬取(主要用于爬取更新,值为:true / false);
- circleInterval 循环间隔时间单位(秒)。
任务规则参数详细配置:
(1).spider 爬虫配置:
- 参数说明:
- thread : 线程数;
startUrl:开始爬取页面url,以infoQ网站为列,我们爬取新闻列表,开始地址为下图所示:
downloader:下载器设置,普通网站一般设为空值;
weChatDownloader :微信爬取专用。微信爬取网址必须设置参数。
dynamicProxyHttpClientDownloader:支持动态代理ip,Downloader。在没有设置下载器,动态动态代理参数 (dynamicProxy)为true时 会自动设置本下载器。设参数置参考site 站点配置:- processer:处理器
- 项目中处理器主要有以下处理器:
- weChatUpdatePageProcess:微信爬取更新专用;
需设置下载器weChatDownloader
微信公众号更新爬取示例:1
```"spider": {
1 | ``` "startUrl": "http://weixin.sogou.com/weixin?type=1&s_from=input&query=oschina2013&ie=utf8&_sug_=n&_sug_type_=", |
1 | ```"processer": "weChatUpdatePageProcess", |
1 | ```"pipeline": ["exceptionPipeline","rinseCommPipeline","rinseWeChatPipeline","mySqlArticlePipeline"] |
1 | ``` "site": { |
1 | ```"proxy": [], |
1 | ```"sleepTime": 5000, |
1 | ```"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36" |
1 | ```"condition": { |
1 | ``` "startTime": "" |
1 | `"wechat": {` |
- 4.在上述爬取规则配置site 站点配置中,将 dynamicProxy 属性设置为 true 开启动态代理哦,dynamicProxy 属性默认为false,不开启。
完成上面步骤在爬取微信公众号时就可以使用动态代理了,免去验证码之苦~~哈哈
历史爬取
历史爬取配置步骤如下:
- 1.电脑设置开启代代理手机设置代理为电脑的ip
- 2.微信关注要爬取的公众号
- 3.选择公众号点击查看历史 ,进入工作号文章列表 开始向上滑我们在代理软件找到如下地址:
https://mp.weixin.qq.com/mp/profile_ext?action=getmsg&__biz=MjM5MTcyMzEyMA==&f=json&frommsgid=1000000027&count=10&scene=124&is_ok=1&uin=777&key=777&pass_ticket=RLFa08mwKkLcExQhkugeJbL5fWrSbxHkAsITPcEc0BTVHSc6tqW9bJt71z9pWIWw&wxtoken=&x5=1&f=json
4.将以上地址中的 frommsgid 的值 如: 1000000027 删除后再设置为 json配置中 spider ——> startUrl 的值
5.将以上地址中的frommsgid 的值 如1000000027 改成 [MESSAGEID] 删除后设置为 json配置 wechat->url参数的值。如下图:
- 6.将第三点图中 红色部分 Cookie 参数和值,设置到 json 配置 headers 参数数组中如下:
- 7.剩下就是文章字段规则和清洗规则的配置了,可参考前文中的详解哦。
更新爬取
下面是微信公众号更新爬取的步骤:
- 1.找到公众号的微信号
2.将以下链接中 “woshipm” 修改为你要爬取的公众号的微信号
http://weixin.sogou.com/weixin?type=1&s_from=input&query=woshipm&ie=utf8&_sug_=n&_sug_type_=
3.将修改好的地址配置为 spider ——> startUrl 和 wechat——>url 参数的值。uuid 必须设置微信号如图:
4.剩下就是文章字段规则和清洗规则的配置了,可参考前文中的详解哦。
(到这里我们整个配置就已经完成了,大家可以爬取文章了~)
五.爬取效果展现
下面给大家展示下我们用奇伢爬虫爬取文章后在我们 精益阅读APP 以及 精益阅读小程序 上的展现:
大家可以扫描下方二维码进入小程序哦。进入小程序后可以 点击右上角——>关于精益阅读——>相关公众号 进入我们公众号,有什么问题也可以在公众号中联系客服哦~