Java垂直爬虫:webmagic

jopen 11年前

一个网络爬虫工具包

webmagic的发起源于工作中的需要,其定位是帮助开发者更便捷的开发一个垂直的网络爬虫。

webmagic的功能覆盖整个爬虫的生命周期(链接提取、页面下载、内容抽取、持久化),开发者可以便捷的使用xpath和正则表达式进行链接和内容的提取,只需编写少量代码即可完成一个定制爬虫。

特色

  • 垂直爬虫

    webmagic着重于页面抽取的工作。开发者可以使用xpath和正则表达式进行链接和内容的提取,支持链式API调用,以及单复数转换。

    String content = page.getHtml().x("//div[@class='body']").r("这段话比较重要(.*)").toString();
  • 嵌入式&无配置

    webmagic与其他Full-Stack的框架不同,没有配置文件,大部分功能都通过简单的API调用完成。webmagic以jar包的形式存在,并且不依赖任何框架,在程序可以随处进行调用。

    以下是爬取oschina博客的一段代码:

    Spider.me().processor(new SimplePageProcessor("http://my.oschina.net/", "http://my.oschina.net/*/blog/*")).run();
  • 可扩展

    参考scrapy的设计,webmagic将爬虫的扩展点分为Processor、Schedular、Downloader、Pipeline三个模块,可以通过扩展这些接口实现强大的扩展功能。如可以通过多个Spider实现多线程抓取;可以通过扩展Schedular实现断点续传乃至于分布式爬虫;可以通过扩展 Pipeline实现业务可定制的持久化功能。

项目主页:http://www.open-open.com/lib/view/home/1371129460726