美文网首页
WebCollector源码分析

WebCollector源码分析

作者: with_dream | 来源:发表于2021-01-24 00:37 被阅读0次

WebCollector 一个java爬虫框架
2020年1月25日

https://github.com/CrawlScript/WebCollector

WebCollector.jpg

代码框架

基类为Crawler 内部管理DBManager(数据存储)和Fetcher(线程调度)

分为四个流程:

一、内存管理

内部使用java集合和RocksDB
RocksDB 内嵌nosql数据库
所以不支持分布式

二、线程调度

在Fetcher中 直接创建FetcherThread数组执行线程

QueueFeeder从队列中通过轮询获取任务 存放在FetchQueue中
FetcherThread从FetchQueue中获取任务执行具体操作
FetchQueue使用BlockingQueue应该更好
构成生产消费者模式

然后将任务回调到AutoParseCrawler.extcute中
执行网络请求 将请求结果分发给具体的子类实现方法
分发给Visitor的注解方法 方法内具体实现由开发者控制

三、网络请求

定义了Requester接口
默认使用Okhttp3实现

总结

使用注解+反射的方式回调方法 更加灵活

QueueFeeder/FetcherThread构成生产消费者是个不错的选择

线程控制实现不太好 直接定义了50个线程 一条线程完成从请求到存储的一条龙服务

相关文章

网友评论

      本文标题:WebCollector源码分析

      本文链接:https://www.haomeiwen.com/subject/zoavzktx.html