V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xuxueli
V2EX  ›  程序员

XXL-CRAWLER v1.2.1 发布,分布式爬虫框架

  •  
  •   xuxueli · 2018-02-08 10:29:23 +08:00 · 3185 次点击
    这是一个创建于 2485 天前的主题,其中的信息可能已经有所发展或是发生改变。

    版本新特性

    • 1、JS 渲染:支持 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 单机版爬虫。
    • 7、JS 渲染:通过扩展 "PageLoader" 模块,支持采集 JS 动态渲染数据。原生提供 Jsoup(快速、推荐)和 HtmlUnit(较慢、JS 渲染)两种实现,支持自由扩展其他实现。
    • 8、失败重试:请求失败后重试,并支持设置重试次数;
    • 9、代理 IP:对抗反采集策略规则 WAF ;
    • 10、动态代理:支持运行时动态调整代理池,以及自定义代理池路由策略;
    • 11、异步:支持同步、异步两种方式运行;
    • 12、扩散全站:支持以现有 URL 为起点扩散爬取整站;
    • 13、去重:防止重复爬取;
    • 14、URL 白名单:支持设置页面白名单正则,过滤 URL ;
    • 15、自定义请求信息,如:请求参数、Cookie、Header、UserAgent 轮询、Referrer 等;
    • 16、动态参数:支持运行时动态调整请求参数;
    • 17、超时控制:支持设置爬虫请求的超时时间;
    • 18、主动停顿:爬虫线程处理完页面之后进行主动停顿,避免过于频繁被拦截;

    文档地址

    技术交流

    22 条回复    2018-02-09 08:44:47 +08:00
    xuxueli
        1
    xuxueli  
    OP
       2018-02-08 10:34:45 +08:00
    为楼主大 call。
    xuxueli
        2
    xuxueli  
    OP
       2018-02-08 10:34:57 +08:00
    为一楼点赞!
    xuxueli
        3
    xuxueli  
    OP
       2018-02-08 10:35:11 +08:00
    楼上好样的 :)
    jimages
        4
    jimages  
       2018-02-08 11:03:45 +08:00 via iPhone
    ???
    xuxueli
        5
    xuxueli  
    OP
       2018-02-08 11:18:32 +08:00
    @jimages 迭代了很久的一个爬虫框架,源码和文档都比较完善,可以体验下啊。
    Itoktsnhc
        6
    Itoktsnhc  
       2018-02-08 11:23:38 +08:00
    这位应该是忘换号了
    sunsulei
        7
    sunsulei  
       2018-02-08 11:24:22 +08:00
    又见戏精...
    xuxueli
        8
    xuxueli  
    OP
       2018-02-08 11:28:44 +08:00
    @Itoktsnhc @sunsulei 哈哈,中央戏精学院刚毕业,见谅
    xuxueli
        9
    xuxueli  
    OP
       2018-02-08 11:36:45 +08:00
    XXL 系列开源软件,均提供源码以及完善的文档,感兴趣的话,欢迎体验使用哈:

    http://www.xuxueli.com/page/projects.html
    Sanko
        10
    Sanko  
       2018-02-08 11:37:01 +08:00 via Android
    楼主好样的
    Sanko
        11
    Sanko  
       2018-02-08 11:37:23 +08:00 via Android
    @Sanko 你怎么用户名和我一样?
    xuxueli
        12
    xuxueli  
    OP
       2018-02-08 11:39:09 +08:00
    @Sanko 感谢关注金和支持哈 :)
    harry890829
        13
    harry890829  
       2018-02-08 11:43:59 +08:00
    真吸睛……
    xuxueli
        14
    xuxueli  
    OP
       2018-02-08 12:14:43 +08:00
    @harry890829 哈哈,可以体验下啊。
    可以用它来采集 “ V3ex、知乎、京东”(学习用啊)等站数据作分析用。
    WuMingyu
        15
    WuMingyu  
       2018-02-08 12:17:55 +08:00 via iPhone
    @Sanko @Sanko 你们俩头像还一样!
    Nick2VIPUser
        16
    Nick2VIPUser  
       2018-02-08 12:52:44 +08:00 via iPhone
    大佬大佬~爬虫新人膜拜一下。框架是基于 node 的嘛
    Nick2VIPUser
        17
    Nick2VIPUser  
       2018-02-08 12:54:03 +08:00 via iPhone
    @Nick2VIPUser 是 java 的,你好好看一下文档
    vikeria
        18
    vikeria  
       2018-02-08 12:58:30 +08:00 via Android
    @xuxueli 体验过楼主的分布式定时任务,很不错,赞一个
    xuxueli
        19
    xuxueli  
    OP
       2018-02-08 13:04:26 +08:00
    @Nick2VIPUser 哈哈,我们怕是戏精学院同一届的
    xuxueli
        20
    xuxueli  
    OP
       2018-02-08 13:05:00 +08:00
    @vikeria 哈哈,感谢关注哈,可以体验下 XXL 系列的其他项目啊 :)
    breezeFP
        21
    breezeFP  
       2018-02-09 07:34:53 +08:00 via iPhone
    正在用你的 xxl-job,支持一下
    xuxueli
        22
    xuxueli  
    OP
       2018-02-09 08:44:47 +08:00 via Android
    @breezeFP 哈哈,感谢信任支持啊。
    可以体验下 XXL 系列的其他项目啊!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2850 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 15:18 · PVG 23:18 · LAX 07:18 · JFK 10:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.