From f57ada8114407060bde32a3116faf33b54948cbb Mon Sep 17 00:00:00 2001 From: "yihua.huang" Date: Thu, 13 Jun 2013 15:58:42 +0800 Subject: [PATCH] update readme --- README.md | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index e4adfd2c..8724e890 100644 --- a/README.md +++ b/README.md @@ -2,25 +2,28 @@ webmagic --------- ####*一个网络爬虫工具包* -webmagic的发起源于工作中的需要,其定位是帮助开发者更便捷的开发一个垂直的网络爬虫。webmagic可以便捷的使用xpath和正则表达式进行链接和内容的提取,对于有Java和xpath或者正则基础的开发者,只需编写少量代码即可完成一个定制爬虫。 +webmagic的发起源于工作中的需要,其定位是帮助开发者更便捷的开发一个垂直的网络爬虫。 -###哲学### +webmagic的功能覆盖整个爬虫的生命周期(链接提取、页面下载、内容抽取、持久化),开发者可以便捷的使用xpath和正则表达式进行链接和内容的提取,只需编写少量代码即可完成一个定制爬虫。 -* Write Less, Do more. +###特色### - webmagic是一个开发者的工具包,它的目标是让开发者可以通过更少的代码,实现一个高质量的爬虫。webmagic内部还集成了一些常见的垂直性爬虫的功能,例如针对页面正文的Readability技术,可以直接对页面的正文进行智能提取。 +* ####垂直爬虫#### + 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`](https://github.com/scrapy/scrapy)的设计,webmagic将爬虫的扩展点分为Processor、Schedular、Downloader、Pipeline三个模块,可以通过扩展这些接口实现强大的扩展功能。如可以通过多个Spider实现多线程抓取;可以通过扩展Schedular实现断点续传乃至于分布式爬虫;可以通过扩展Pipeline实现业务可定制的持久化功能。 -* 简单可用 - - webmagic的功能覆盖整个爬虫的生命周期(链接提取、页面下载、内容抽取、持久化),是一个完整的爬虫框架。但是与其他Full-Stack的框架不同,webmagic只引入少量约定,大部分功能都通过简单的API调用完成,目的是尽量降低开发者的学习成本。webmagic以jar包的形式存在,并且不依赖任何框架,在程序可以随处进行调用。 - -* 灵活性 - - 参考scrapy的设计,webmagic将爬虫的扩展点分为processor、schedular、downloader、pipeline三个模块,可以通过扩展这些接口实现强大的扩展功能。如可以通过多个Spider实现多线程抓取;可以通过扩展schedular实现断点续传乃至于分布式爬虫;可以通过扩展pipeline实现业务可定制的持久化功能。 + ------ @@ -65,3 +68,7 @@ webmagic定制的核心是PageProcessor接口。一个最简单的webmagic爬虫 可参考作者博客[使用webmagic抓取页面并保存为wordpress文件](http://my.oschina.net/flashsword/blog/136846) +### 协议 + +webmagic遵循[Apache 2.0协议](http://opensource.org/licenses/Apache-2.0) +