# collecter **Repository Path**: wldos/collecter ## Basic Information - **Project Name**: collecter - **Description**: 纯Java实现的基于正则表达式的网络内容采集器,可以应用于内容网站或抓取相关资讯。适合Java初学者。 - **Primary Language**: Java - **License**: BSD-3-Clause-Clear - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 0 - **Created**: 2020-07-17 - **Last Updated**: 2022-02-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 收集者网页采集器 基于正则表达式实现的纯Java网络内容采集器。 采集任务主类:com.zhiletu.collect.Collecter 默认定时器类:com.zhiletu.collect.UdastConfigServlet 涉及子功能: 1.正则表达式匹配文本和url 2.HTTPclient抓取网页 3.图片转格式与压缩 4.中文分词与文章高频词统计 5.定时执行采集任务 6.采集规则读取、驱动 7.采集数据存储到数据库 8.读取数据库配置文件 9.图片下载并保存到指定目录 10.对文章高频词查询百度词典,并存储到词典库 11.支持采集接口,并对返回的json支持js脚本处理 采集规则配置:
CREATE TABLE `collect_rule`
(
`rule_id`             int(11) NOT NULL AUTO_INCREMENT COMMENT '规则编号',
`url_index`           varchar(500) NOT NULL COMMENT '采集索引页(主题列表)网址,比如:http://tech.domain.com.cn/discovery/',
`charset`             varchar(30)  NOT NULL DEFAULT 'UTF-8' COMMENT '采集网页的编码',
`pre_fix`             varchar(256)          DEFAULT NULL COMMENT 'url前缀,比如:http://xxx.com',
`url_regex`           varchar(256) NOT NULL DEFAULT '--' COMMENT '匹配网址列表中所有url的正则表达式(注意数据库和Java不一样,不需要转义)',
`insensitive`         varchar(10)           DEFAULT 'false' COMMENT 'true 表示正则匹配忽略大小写,默认区分大小写',
`title_regex`         varchar(256) NOT NULL COMMENT '匹配文章标题正则表达式',
`content_regex`       varchar(256) NOT NULL COMMENT '匹配文章正文正则表达式',
`need_handle`         varchar(10)           DEFAULT 'false' COMMENT '采集到的网址是否需要再加工,一般不需要',
`pic_url_replace`     varchar(50)           DEFAULT NULL COMMENT '如果需要替换图片url前缀为网站url,图片要替换的部分,如果只需加上网站url,那么是:/,注意.需要正则转义',
`collect_img`         varchar(10)  NOT NULL DEFAULT 'true' COMMENT '是否采集图片,默认采集',
`png_jpg`             varchar(10)           DEFAULT 'true' COMMENT '是否需要转换图片格式为jpg,png,gif自动转换为jpg,方便压缩',
`img_src_domain`      varchar(100) NOT NULL COMMENT '图片要发布的服务域名,src属性里面的域名,如:pic.doamin.com',
`collect_num`         int(10) DEFAULT '5' COMMENT '采集条数',
`rule_name`           varchar(100)          DEFAULT NULL COMMENT '规则名称',
`same_word_r`         varchar(10)  NOT NULL DEFAULT 'true' COMMENT '是否替换同义词,默认替换,需要有同义词库支持',
`cat_id`              int(11) NOT NULL COMMENT '所属分类目录id',
`config_id`           int(11) NOT NULL DEFAULT '0' COMMENT '改规则使用的全局配置,包含绝对路径信息和域名指向',
`is_valid`            varchar(10)  NOT NULL DEFAULT 'true' COMMENT '是否有效',
`strategy_repeat`     varchar(10)           DEFAULT 'onlylife' COMMENT '防重复采集策略:终生一次onlylife(采集过的url不再采集)、每天采集一次dayone(采集过的url,下次执行时判断系统日期与采集历史日期,如果当天没有采集过执行采集)',
`come_from`           varchar(10)  NOT NULL DEFAULT 'false' COMMENT '是否添加转载自',
`modle_handle_bean`   varchar(500)          DEFAULT NULL COMMENT '要调用的后面字段内js脚本的主方法名称,比如infoHandle',
`modle_handle_script` longtext CHARACTER SET utf8mb4 COMMENT '要执行的js脚本,结合文章内容或标题,按照约定的规则写脚本,并后台执行',
PRIMARY KEY (`rule_id`)
) ENGINE=MyISAM AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COMMENT='本规则不考虑仅执行一次的单页采集,所有规则都是要重复执行,支持设置防重复采集策略:终生一次(采集过的url不再采集)、每天采集一次(采集过的url,下次执行时判断系统日期与采集历史日期,如果当天没有采集过执行采集)。';
![avatar](https://pic.zhiletu.com/2021/03/cltpdm.png)