Quantcast
Channel: OSCHINA 社区最新新闻
Viewing all articles
Browse latest Browse all 44787

Pholcus 1.2 发布,高并发、分布式爬虫软件

$
0
0

    Pholcus爬虫软件发布1.2版本,CPU使用率与内存占用均有大幅降低,运行更加稳定流畅。同时新增kafka输出方式,加快任务终止速度(秒级延时)。

Pholcus v1.2 具体更新细节如下:

一、输出功能升级

  1. 添加kafka数据库输出

  2. 基本重新了mysql输出模块,提升输出稳定性与输出效率

  3. 增加输出文件目录的配置项

  4. 大量优化结果收集模块,提升I/O性能与状态控制性

  5. 移除文件输出目录的日期后缀

  6. 调整文件名哈希临界长度为>8

  7. 移除数据输出通道容量的配置项DATA_CHAN_CAP,由分批输出用户设置项直接决定


二、下载功能升级

  1. 增强自动转码功能

  2. 当响应头未指定编码类型时,从请求头读取

  3. 都未指定编码类型或编码类型为utf8时,不做转码,节约内存

  4. 增加支持自动解压缩deflate和zlib编码的响应流

  5. 升级surfer下载器,修复POST提交时下载内核中Content-Type被覆盖的bug,修复Request.GetHeader()==nil时panic的bug

  6. 修复输出图片等文件时,下载补全的bug

  7. Context.text字段类型由string改为[]byte

  8. 将HTTP状态码大于等于400的请求自动标记为下载失败


三、采集规则模块升级

  1. 更新*Request.GetTemp(key string, defaultValue interface{}) interface{},defaultValue不再作为结果接收容器,当键值对不存在时,返回值为参数defaultValue。

  2. Spider.Register()方法改为接受Spider类型(之前为*Spider),推荐使用 "func init(){Spider{}.Register()}" 的方式进行声明

  3. 优化任务停止条件,Spider.Root退出之前,任务不可终止

  4. 修复动态规则解析bug

  5. 同名采集规则的名称自动添加加"(2)"形式的序号后缀

  6. 优化crawler采集引擎的随机停顿逻辑

  7. 添加 Context.Log() 日志打印接口


四、其他优化

  1. 修复某些情况下在非win系统中log日志引发的panic

  2. 修复web版启动时偶然性打不开页面的bug

  3. web版实时日志在超过2000条时自定清除前1000条

  4. 优化scheduler调度器

  5. 调整分布式模块字面量命名

  6. 修复CUP占用高的问题,采集过程的最低使用率从 20% 降低到 1%

  7. 加快任务的主动终止,基本已将延时控制在秒级

  8. 通过数据输出速率来抑制采集下载速率,从而降低不必要的内存占用

下载地址:


Viewing all articles
Browse latest Browse all 44787

Trending Articles