Pholcus爬虫软件发布1.2版本,CPU使用率与内存占用均有大幅降低,运行更加稳定流畅。同时新增kafka输出方式,加快任务终止速度(秒级延时)。 Pholcus v1.2 具体更新细节如下: 一、输出功能升级 添加kafka数据库输出 基本重新了mysql输出模块,提升输出稳定性与输出效率 增加输出文件目录的配置项 大量优化结果收集模块,提升I/O性能与状态控制性 移除文件输出目录的日期后缀 调整文件名哈希临界长度为>8 移除数据输出通道容量的配置项DATA_CHAN_CAP,由分批输出用户设置项直接决定 二、下载功能升级 增强自动转码功能 当响应头未指定编码类型时,从请求头读取 都未指定编码类型或编码类型为utf8时,不做转码,节约内存 增加支持自动解压缩deflate和zlib编码的响应流 升级surfer下载器,修复POST提交时下载内核中Content-Type被覆盖的bug,修复Request.GetHeader()==nil时panic的bug 修复输出图片等文件时,下载补全的bug Context.text字段类型由string改为[]byte 将HTTP状态码大于等于400的请求自动标记为下载失败 三、采集规则模块升级 更新*Request.GetTemp(key string, defaultValue interface{}) interface{},defaultValue不再作为结果接收容器,当键值对不存在时,返回值为参数defaultValue。 Spider.Register()方法改为接受Spider类型(之前为*Spider),推荐使用 "func init(){Spider{}.Register()}" 的方式进行声明 优化任务停止条件,Spider.Root退出之前,任务不可终止 修复动态规则解析bug 同名采集规则的名称自动添加加"(2)"形式的序号后缀 优化crawler采集引擎的随机停顿逻辑 添加 Context.Log() 日志打印接口 四、其他优化 修复某些情况下在非win系统中log日志引发的panic 修复web版启动时偶然性打不开页面的bug web版实时日志在超过2000条时自定清除前1000条 优化scheduler调度器 调整分布式模块字面量命名 修复CUP占用高的问题,采集过程的最低使用率从 20% 降低到 1% 加快任务的主动终止,基本已将延时控制在秒级 通过数据输出速率来抑制采集下载速率,从而降低不必要的内存占用 下载地址: Source code (zip) Source code (tar.gz) Pholcus 1.2 发布,高并发、分布式爬虫软件下载地址