-
Notifications
You must be signed in to change notification settings - Fork 151
Home
Tony Shen edited this page Apr 4, 2020
·
32 revisions
NetDiscovery 是基于 Vert.x、RxJava 2 等开源库实现的爬虫框架。 (最近开始补wiki文档)
- 轻量级爬虫
- 模块化设计,便于扩展:支持多种消息队列(Disruptor、Redis、Kafka、RabitMQ、RocketMQ)、多种网络框架(Http Client、Okhttp3、Selenium等),也支持自己实现。
- 支持分布式
- 多线程、异步化:底层使用 RxJava 2 的多线程机制
- 支持线程池隔离:爬虫的 Parser、Pipeline 过程可以放在独立的线程池中进行处理
- 支持 Request 动态添加到正在运行爬虫的 Queue 中
- 支持 Kotlin 协程
- 支持 JS 渲染
- 支持 Request 自定义 header 信息
- 支持 debug 功能:在调试时 Request 可以打开 debug 的开关,使用 Local Cache(RxCache) 存储请求的结果,从而避免多次请求同一个网页。
- 支持失败重试的机制
- 多纬度控制爬取速度(Pipeline、Request、Download、Domain)等等
- 支持代理池、User Agent 池、Cookies 池
- 支持爬虫的深度抓取:能够在 Pipeline 中发起深度抓取
- 支持 URL 去重:使用布隆过滤器
- 支持 Spider 的监控、SpiderEngine 的监控 (基于Etcd、Zookeeper)
- agent 模块能够对当前服务器的 CPU 和内存进行实时监控
- SpiderEngine 整合 Quartz
- SpiderEngine 提供 http、RPC 接口
- Configuration
- Downloader
- vertx webclient
- urlconnection
- http client
- okhttp3
- file
- selenium
- Chrome
- Firefox
- IE
- Phantomjs
- htmlunit
- Queue
- ConcurrentLinkedQueue
- Disruptor
- Redis
- Kafka
- RabbitMQ
- RocketMQ
- Parser
- Pipeline
- Rate limiting
- RPC
- Jobs
- Vert.x EventBus
- User Agent Pools
- IP Pools
- Cookies Pools
- Monitor
- Spider
- SpiderEngine
- DSL
- Coroutines
- ChangeLog