1JS 渲染: 支持 JS 渲染方式采集数据, 可参考 爬虫示例 6;
2 抽象并设计 PageLoader, 方便自定义和扩展页面加载逻辑, 如 JS 渲染等底层提供 JsoupPageLoader(默认 / 推荐),htmlUnitPageLoader 两种实现, 可自定义其他类型 PageLoader 如 Selenium 等;
3 修复 Jsoup 默认加载 1M 的限制;
4 爬虫线程中断处理优化;
简介
XXL-CRAWLER 是一个面向对象的分布式爬虫框架一行代码开发一个分布式爬虫, 拥有多线程异步 IP 动态代理分布式 JS 渲染等特性;
特性
1 简洁: API 直观简洁, 可快速上手;
2 轻量级: 底层实现仅强依赖 jsoup, 简洁高效;
3 模块化: 模块化的结构设计, 可轻松扩展
4 面向对象: 支持通过注解, 方便的映射页面数据到 PageVO 对象, 底层自动完成 PageVO 对象的数据抽取和封装返回; 单个页面支持抽取一个或多个 PageVO
5 多线程: 线程池方式运行, 提高采集效率;
6 分布式支持: 通过扩展 RunData 模块, 并结合 Redis 或 DB 共享运行数据可实现分布式默认提供 LocalRunData 单机版爬虫
7JS 渲染: 通过扩展 PageLoader 模块, 支持采集 JS 动态渲染数据原生提供 Jsoup(快速推荐) 和 HtmlUnit(较慢 JS 渲染) 两种实现, 支持自由扩展其他实现
8 失败重试: 请求失败后重试, 并支持设置重试次数;
9 代理 IP: 对抗反采集策略规则 WAF;
10 动态代理: 支持运行时动态调整代理池, 以及自定义代理池路由策略;
11 异步: 支持同步异步两种方式运行;
12 扩散全站: 支持以现有 URL 为起点扩散爬取整站;
13 去重: 防止重复爬取;
14URL 白名单: 支持设置页面白名单正则, 过滤 URL;
15 自定义请求信息, 如: 请求参数 CookieHeaderUserAgent 轮询 Referrer 等;
16 动态参数: 支持运行时动态调整请求参数;
17 超时控制: 支持设置爬虫请求的超时时间;
18 主动停顿: 爬虫线程处理完页面之后进行主动停顿, 避免过于频繁被拦截;
来源: http://geek.csdn.net/news/detail/254083