使用WebCollector爬虫框架进行微信公众号文章爬取并持久化

〇、Java爬虫框架有哪些?

1.nutch:Apache下开源爬虫项目,适合做搜索引擎,分布式爬虫只是其中一个功能,功能丰富,文档完整。

2.heritrix:比较成熟,用的人较多,有自己的web管理控制台,包含了一个HTTP服务器。

3.crowler4j:只具有爬虫的核心功能,上手简单。

4.webmagic:一个可伸缩的爬虫框架,涵盖爬虫整个生命周期:下载、URL管理、内容提取和持久化。

5.gecco:轻量集网络爬虫,整合了jsoup、httpclient、fastjson、spring、htmlunit、redission等优秀框架。

6.webcollector:一个无需配置、便于二次开发的爬虫框架,参考了crawler4j。

4、5、6皆为国人所写。

一、网络爬虫基本概念

基本的网络爬虫框架如图所示:

基本的网络爬虫工作流程如下:

1.精心挑选一部分种子URL;

2.将这些URL放入待抓取URL队列;

3.从待抓取URL队列中取出URL,解析DNS得到主机ip地址,将网页内容下载下来,解析有用的内容存储到库中,将这些URL放入已抓取URL队列;

4.分析已抓取URL队列中的URL,分析其中包含的其他URL,抽取新的URL放入待抓取队列,重复循环。

基本的抓取策略:

1.深度优先遍历策略:一个链接一个链接跟踪下去,处理完这条线路之后再转入下一个起始页,继续跟踪链接。

2.宽度优先遍历策略:将新下载网页中发现的链接直接插入待抓取URL队列的末尾。也就是指网络爬虫会先抓取起始网页中链接的所有网页,然后再选择其中的一个链接网页,继续抓取在此网页中链接的所有网页。

二、WebCollector框架介绍

作为我的第一款入门爬虫框架,先不论其好坏,重点是需要借助该框架理解爬虫的原理、流程和关键技术,故下面进行详细梳理。

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

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

其内核架构如图所示:

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与Htt

评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值