美文网首页
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