SkillAgentSearch skills...

JavaCrawling

"奇伢爬虫"是基于sprint boot 、 WebMagic 实现 微信公众号文章、新闻、csdn、info等网站文章爬取,可以动态设置文章爬取规则、清洗规则,基本实现了爬取大部分网站的文章。

Install / Use

/learn @qiyaTech/JavaCrawling
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

奇伢爬虫使用介绍


导航


  1. 简介
  2. 运行项目
  1. 爬取网站文章操作手册
  2. 爬取文章配置手册
  1. 爬取效果展现

一.简介


奇伢爬虫基于spring boot 、 WebMagic 实现 微信公众号文章、新闻、csdn、info等网站文章爬取,可以动态设置文章爬取规则、清洗规则,基本实现了爬取大部分网站的文章。

(奇伢爬虫技术讨论群:365155351,大家可以加群一起来讨论哦~)

二.运行项目


1.运行环境

项目开发环境:IntelliJ IDEA 15 , JDK 1.8

2.运行必备配置

2.1.数据库配置

  • 先创建数据库,然后修改配置文件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中的sql,就可以将一些必备的表及数据导入数据库了。

2.3.redis 配置

  • 项目中用到 redis 对一些数据的存储, 如果之前没有安装过 redis, 需要先安装 redis ,然后修改配置文件 application-dev.properties的如下属性:
  • spring.redis.host = redis ip 地址
  • spring.redis.password = redis 密码
  • 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. 对网站或公众号每日更新文章进行爬取;
  2. 对网站或公众号历史文章进行爬取。
  • 任务管理界面如下:

任务管理界面

  • 添加任务:

添加任务界面

添加任务时,大家要注意两个字段哦:

  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:处理器

  • 项目中处理器主要有以下处理器:

  1. weChatUpdatePageProcess:微信爬取更新专用; 需设置下载器weChatDownloader 微信公众号更新爬取示例: { "spider": { "thread": 1, "startUrl": "http://weixin.sogou.com/weixin?type=1&s_from=input&query=oschina2013&ie=utf8&_sug_=n&_sug_type_=", "downloader": "weChatDownloader", "processer": "weChatUpdatePageProcess", "siteid": 13, "pipeline": ["exceptionPipeline","rinseCommPipeline","rinseWeChatPipeline","mySqlArticlePipeline"] }, "site": { "domain": "mp.weixin.qq.com", "proxy": [], "retry": 3, "sleepTime": 5000, "headers": [], "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" }, "condition": { "endTime": "", "startTime": "" }, "wechat": { "name": "oschina2013", "uid": "oschina2013", "url": "http://weixin.sogou.com/weixin?type=1&s_from=input&query=oschina2013&ie=utf8&_sug_=n&_sug_type_=" }, "rule": { "detailregex": "http://mp\\.weixin\\.qq\\.com/s?\\S+", "listregex": "http://mp.weixin.qq.com/profile?src", "loadlistxpath":"//*[@id='main']/div[4]/ul/li[1]/div/div[2]/p[1]", "listxpath": "", "detailxpath": [ { "name": "title", "reg": "", "value": "//*[@id='activity-name']\/text()" }, { "reg": "", "value": "//*[@id='post-date']\/text()", "name": "publicTime", "simpleDateFormat": "yyyy-MM-dd" }, { "name": "author", "reg": "", "value": "//*[@id='post-user']\/text()" }, { "name": "beforeContent", "reg": "", "value": "//*[@id='js_content']" } ] }, "isCircle": true, "circleInterval":10800, "rinseRules":[ { "action": "add", "type":"attr", "cssquery": "img", "name": "width", "vluae": " 100%" }, { "action": "add", "type":"attr", "cssquery": "img", "name": "height", "vluae": "auto" }, { "action": "replace", "type":"attr", "cssquery": "img", "name": "style", "source": "width: \\d+[.\\d+]px", "target": "width: 100%" }, { "action": "replace", "type":"attr", "cssquery": "img", "name": "style", "source": "width: auto", "target": "width: 100%" }, { "action": "copy", "type":"attr", "cssquery": ".video_iframe", "source": "data-src", "target": "src" } ] }

  2. weChatHistoryPageProcess:微信爬取历史专用; 需设置下载器weChatDownloader 微信公众号历史爬取示例: { "spider": { "thread": 1, "startUrl": "https://mp.weixin.qq.com/mp/profile_ext?action=getmsg&__biz=MjM5NzM0MjcyMQ==&f=json&frommsgid=&count=10&scene=124&is_ok=1&uin=777&key=777&pass_ticket=QRnKzE8eCui1gEzcgTzGlMMUSP9d7DzbTGtoQOU1OCKoI9yMgM1eTn2dNoBQlv0K&wxtoken=&x5=1&f=json", "downloader": "weChatDownloader", "processer": "weChatHistoryPageProcess", "siteid": 13, "pipeline": ["rinseCommPipeline","rinseWeChatPipeline","mySqlArticlePipeline"] }, "site": { "domain": "mp.weixin.qq.com", "proxy": [], "retry": 3, "sleepTime": 3000, "headers": [ { "name": "Cookie", "value": "news_commid=oDOGxv_sCQKLRbPUnpFOlBxc12sk; wxtokenkey=3af5afc4ad6dc8d50ddb4155017fee8169c40528ecbaedb532c0e00323feea4d; wxticket=898662085; wxticketkey=28a040f7ad3354057a1de315330438a969c40528ecbaedb532c0e00323feea4d; wap_sid=CIDixZ0HEkBiWmtxZTF6QkpTazIzWk1sbUhINUFUek9kM1NBOTFrUE9hOGJId19aeVJOYUlxQy1lMTdXcWxYNmxZR1FuSUYtGAQgpBQogZiS9wgwiYGZxwU=; wap_sid2=CIDixZ0HElxvMXNia1Z0Q1ZrTHNfYWdiODlFVWRlUTJ0cS1qU0U5YUlrbmFLX1h6bDN3WFJDUW5RaG14TVNTc0xUb1hLNEszNHB2UHgxQUt6SEFpcDFKaFpyVDh5b01EQUFBfjCJgZnHBQ==" } ], "userAgent": "Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1" }, "condition": { "startTime":"", "endTime":"" }, "wechat": { "name": "", "uid": "", "url": "https://mp.weixin.qq.com/mp/profile_ext?action=getmsg&__biz=MjM5NzM0MjcyMQ==&f=json&frommsgid=[MESSAGEID]&count=10&scene=124&is_ok=1&uin=777&key=777&pass_ticket=QRnKzE8eCui1gEzcgTzGlMMUSP9d7DzbTGtoQOU1OCKoI9yMgM1eTn2dNoBQlv0K&wxtoken=&x5=1&f=json" }, "rule": { //同上例子配置 }, "isCircle": false, "rinseRules":[ // 同上例子配置 ] }

  3. XPathWebPageProcess:普通网站爬取使用(包括下一页地址页面上有的历史爬取)。 普通网站爬取示例: { "spider" : { "thread" : 1, "startUrl" : "http://www.ceibsreview.com/list/index/classid/128", "downloader" : "", "processer" : "XPathWebPageProcess", "siteid" : "18", "pipeline" : [ "rinseCommPipeline", "mySqlArticlePipeline" ] }, "site" : { "domain" : "www.ceibsreview.com", "retry" : 3, "sleepTime" : 5000, "headers" : [ { "name" : "Content-Type:", "value" : "application\/json" } ], `"cookies" :

Related Skills

View on GitHub
GitHub Stars323
CategoryDevelopment
Updated1mo ago
Forks166

Languages

Java

Security Score

80/100

Audited on Feb 25, 2026

No findings