java 爬虫_基于 Java 的开源网络爬虫框架 WebCollector

爬虫简介:

WebCollector 是一个无须配置、便于二次开发的 Java 爬虫框架(内核),它提供精简的的 API,只需少量代码即可实现一个功能强大的爬虫。WebCollector-Hadoop 是 WebCollector 的 Hadoop 版本,支持分布式爬取。

目前WebCollector-Python项目已在Github上开源,欢迎各位前来贡献代码:https://github.com/CrawlScript/WebCollector-Python

爬虫内核:

WebCollector 致力于维护一个稳定、可扩的爬虫内核,便于开发者进行灵活的二次开发。内核具有很强的扩展性,用户可以在内核基础上开发自己想要的爬虫。源码中集成了 Jsoup,可进行精准的网页解析。2.x 版本中集成了 selenium,可以处理 JavaScript 生成的数据。

Maven:

9ed57f19e1fb4628edefac15ad87e9b0.png

最新Maven地址请参考文档:https://github.com/CrawlScript/WebCollector/blob/master/README.md

文档地址:

https://github.com/CrawlScript/WebCollector/blob/master/README.md

内核构架图:

f8aac8d2ba5087d00b2a5ce82d9bb4d1.png

WebCollector 2.x 版本特性

  1. 自定义遍历策略,可完成更为复杂的遍历业务,例如分页、AJAX
  2. 可以为每个 URL 设置附加信息(MetaData),利用附加信息可以完成很多复杂业务,例如深度获取、锚文本获取、引用页面获取、POST 参数传递、增量更新等。
  3. 使用插件机制,用户可定制自己的Http请求、过滤器、执行器等插件。
  4. 内置一套基于内存的插件(RamCrawler),不依赖文件系统或数据库,适合一次性爬取,例如实时爬取搜索引擎。
  5. 内置一套基于 Berkeley DB(BreadthCrawler)的插件:适合处理长期和大量级的任务,并具有断点爬取功能,不会因为宕机、关闭导致数据丢失。
  6. 集成 selenium,可以对 JavaScript 生成信息进行抽取
  7. 可轻松自定义 http 请求,并内置多代理随机切换功能。 可通过定义 http 请求实现模拟登录。
  8. 使用 slf4j 作为日志门面,可对接多种日志
  9. 使用类似Hadoop的Configuration机制,可为每个爬虫定制配置信息。

WebCollector 2.x 官网和镜像:

  • 官网:https://github.com/CrawlScript/WebCollector

WebCollector 2.x教程:

WebCollector配置

  • WebCollector配置教程

WebCollector入门

  • WebCollector简单入门教程

WebCollector特色功能

  • 【推荐】WebCollector教程——MetaData
  • 【推荐】WebCollector教程——MatchUrl和MatchType
  • WebCollector 教程——去重辅助插件 NextFilter
  • WebCollector教程——断点爬取
  • WebCollector教程——网页正文自动提取

WebCollector持久化

  • WebCollector教程——使用Spring JDBC持久化数据

WebCollector高级爬虫定制

  • WebCollector 2.72自定义Http请求插件(定制User-Agent和Cookie等请求头)
  • WebCollector 2.72处理301/302重定向、404 Not Found等Http状态
  • WebCollector 2.72使用阿布云代理

WebCollector处理Javascript

  • WebCollector教程——爬取Javascript加载的数据
import cn.edu.hfut.dmic.webcollector.model.CrawlDatums;import cn.edu.hfut.dmic.webcollector.model.Page;import cn.edu.hfut.dmic.webcollector.plugin.rocks.BreadthCrawler;/** * Crawling news from github news * * @author hu */public class DemoAutoNewsCrawler extends BreadthCrawler { /** * @param crawlPath crawlPath is the path of the directory which maintains * information of this crawler * @param autoParse if autoParse is true,BreadthCrawler will auto extract * links which match regex rules from pag */ public DemoAutoNewsCrawler(String crawlPath, boolean autoParse) { super(crawlPath, autoParse); /*start pages*/ this.addSeed("https://blog.github.com/"); for(int pageIndex = 2; pageIndex <= 5; pageIndex++) { String seedUrl = String.format("https://blog.github.com/page/%d/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值