收集者网页采集器
基于正则表达式实现的纯Java网络内容采集器,专门为wordpress网站定制。
采集任务主类: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_config` ( `config_id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'web服务采集配置', `web_root` varchar(256) NOT NULL COMMENT 'webroot绝对路径,以/结尾', `web_upload_path` varchar(100) NOT NULL COMMENT '相对于web根目录的附件目录,固定目录,', `upload_path_format` varchar(40) DEFAULT 'yyyy/MM' COMMENT '上传路径的目录组织格式(必须是时间日期格式)', `debug_mode` varchar(10) DEFAULT 'false' COMMENT '是否开启debug模式,true表示打印调试信息', `domain_name` varchar(100) DEFAULT '' COMMENT '绑定域名', `dburl` varchar(256) NOT NULL COMMENT '数据库连接字符串: jdbc:mysql://129.110.89.72:3306/dbname?useUnicode=true&characterEncoding=UTF8', `dbuser` varchar(50) NOT NULL COMMENT 'dbusername', `dbpass` varchar(50) NOT NULL COMMENT 'dbpasswd', `db_name` varchar(50) DEFAULT NULL COMMENT '要采集的内容写入的wordpress数据库名称', `db_pre` varchar(50) NOT NULL COMMENT 'wordpress数据库表前缀', PRIMARY KEY (`config_id`) ) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
采集规则配置: 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,下次执行时判断系统日期与采集历史日期,如果当天没有采集过执行采集)。';
数据库pdm:
源代码见:https://gitee.com/zltcode/collecter
另采集器运行日志实测见:解决采集图片下载失败的bug特发完美日志备忘
声明: 除非转自他站(如有侵权,请联系处理)外,本文采用 BY-NC-SA 协议进行授权 | 嗅谱网
转载请注明:转自《纯java实现的网页内容采集器采集到wordpress,简约而不简单》
本文地址:http://www.xiupu.net/archives-10862.html
关注公众号:
微信赞赏
支付宝赞赏