WebMagic in Action

本文介绍了WebMagic爬虫框架的特性,如微内核、高可扩展性和实用性,特别适合垂直类型的爬虫开发。在项目实施中,结合Maven、Mybatis和Spring进行数据管理,利用XPath解析网页元素。WebMagic简化了Java爬虫的开发,对于新手和老手都是理想的选择。
摘要由CSDN通过智能技术生成

       最近,公司地产项目需求要爬取房地产相关网站数据,之前一直在用WebHarvest+EJB+JPA框架+glassfish服务器进行数据的爬取,但是随着数据源的增多,项目所占资源庞大,效率逐步的降低,想换个爬虫框架,所以小编在Git上找了一下java相关的爬虫框架,最后选定了WebMagic,主要是因为此框架内置多线程机制并且可以管理内核的占用率,并且可以使用xpath进行页面元素抽取的垂直类型爬虫,花时间着手研究了一下,写个Demo分享给大家。

        1.一个框架,一个领域

一个好的框架必然凝聚了领域知识。WebMagic的设计参考了业界最优秀的爬虫Scrapy,而实现则应用了HttpClient、Jsoup等Java世界最成熟的工具,目标就是做一个Java语言Web爬虫的教科书般的实现。

如果你是爬虫开发老手,那么WebMagic会非常容易上手,它几乎使用Java原生的开发方式,只不过提供了一些模块化的约束,封装一些繁琐的操作,并且提供了一些便捷的功能。

如果你是爬虫开发新手,那么使用并了解WebMagic会让你了解爬虫开发的常用模式、工具链、以及一些问题的处理方式。熟练使用之后,相信自己从头开发一个爬虫也不是什么难事。

2.微内核和高可扩展性

WebMagic由四个组件(Downloader、PageProcessor、Scheduler、Pipeline)构成,核心代码非常简单,主要是将这些组件结合并完成多线程的任务。这意味着,在WebMagic中,你基本上可以对爬虫的功能做任何定制。

WebMagic的核心在webmagic-core包中,其他的包你可以理解为对WebMagic的一个扩展——这和作为用户编写一个扩展是没有什么区别的。

 3.注重实用性

虽然核心需要足够简单,但是WebMagic也以扩展的方式,实现了很多可以帮助开发的便捷功能。例如基于注解模式的爬虫开发,以及扩展了XPath语法的Xsoup等。这些功能在WebMagic中是可选的,它们的开发目标,就是让使用者开发爬虫尽可能的简单,尽可能的易维护。

 4.垂直类型爬虫

垂直类型的爬虫要解决的问题则不一样,比如想要爬取一些网站的新闻、博客信息,一般抓取数量要求不是很大,难点则在于如何高效的定制一个爬虫,可以精确的抽取出网页的内容,并保存成结构化的数据。这方面需求很多,webmagic就是为了解决这个目的而开发的。

   项目的实施:

WebMagic基于Maven进行构建,Maven不熟的同学可以去看看官网的介绍,由于小编是要将项目部署在阿里云服务器供数据组发请求抓数据,所以构建的项目是基于Maven的web项目,以及Mybatis+spring框架来进行数据的存储管理,替换了之前的框架和服务器,接下来直接上核心代码给大家分析各模块的作用:


Spider是爬虫启动的入口。在启动爬虫之前,我们需要使用一个PageProcessor创建一个Spider对象,然后使用run()进行启动。同时Spider的其他组件(Downloader、Scheduler、Pipeline)都可以通过set方法来进行设置。


此类是用Xpath解析页面元素取到我们需要的数据,不了解xpath可以去http://www.w3school.com.cn/官方文档学习。


pom作为项目对象模型。通过xml表示maven项目,使用pom.xml来实现。主要描述了项目:包括配置文件;开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的url,项目的依赖性,以及其他所有的项目相关因素。

除此之外就是Mybatis的配置这里不再过多介绍,此web爬虫Demo核心代码就算做完了,大家还在等什么,快动手自己亲自体验下吧。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值