diff --git a/user-manual.md b/user-manual.md index f225c8a..d191965 100644 --- a/user-manual.md +++ b/user-manual.md @@ -65,7 +65,7 @@ webmagic还包含两个可用的扩展包,因为这两个包都依赖了比较 git clone http://git.oschina.net/flashsword20/webmagic.git -在**bin/lib**目录下,有项目依赖的所有jar包,直接在IDE里import即可。 +在**lib**目录下,有项目依赖的所有jar包,直接在IDE里import即可。 -------- diff --git a/zh_docs/user-manual-new.md b/zh_docs/user-manual-new.md index cd4d0f5..537f8fc 100644 --- a/zh_docs/user-manual-new.md +++ b/zh_docs/user-manual-new.md @@ -5,9 +5,9 @@ WebMagic是一个简单灵活、便于二次开发的爬虫框架。除了可以 你可以直接使用WebMagic进行爬虫开发,也可以定制WebMagic以适应复杂项目的需要。 -## 1. 安装和使用 +## 1. 使用WebMagic -WebMagic包含两个主要的jar包:`webmagic-core-{version}.jar`和`webmagic-extension-{version}.jar`。在项目中添加这两个包的依赖,即可使用WebMagic。 +WebMagic主要包含两个jar包:`webmagic-core-{version}.jar`和`webmagic-extension-{version}.jar`。在项目中添加这两个包的依赖,即可使用WebMagic。 ### 1.1 使用Maven @@ -21,7 +21,7 @@ WebMagic基于Maven进行构建,推荐使用Maven来安装WebMagic。在项目 ``` -WebMagic 使用slf4j-log4j12作为slf4j的实现.如果你自己定制了slf4j的实现,请在项目中去掉此依赖。 +WebMagic使用slf4j-log4j12作为slf4j的实现.如果你自己定制了slf4j的实现,请在项目中去掉此依赖。 ```xml @@ -43,19 +43,118 @@ WebMagic 使用slf4j-log4j12作为slf4j的实现.如果你自己定制了slf4j git clone http://git.oschina.net/flashsword20/webmagic.git -在**lib**目录下,有项目依赖的所有jar包,直接在IDE里import即可。 +在**lib**目录下,有项目依赖的所有jar包,直接在IDE里,将这些jar添加到Libraries即可。 -### 1.3 从源码安装 +![import jars](http://static.oschina.net/uploads/space/2014/0403/102848_ETcU_190591.png) -## 2. 基本的爬虫 +### 1.3 第一个项目 -### 2.1 抽取内容(xpath, regex, css selector, jsonpath) +在你的项目中添加了WebMagic的依赖之后,即可开始第一个爬虫的开发了!我们这里拿一个抓取Github信息的例子: -### 2.2 发现链接 +```java +import us.codecraft.webmagic.Page; +import us.codecraft.webmagic.Site; +import us.codecraft.webmagic.Spider; +import us.codecraft.webmagic.processor.PageProcessor; -### 2.3 处理多个页面 +public class GithubRepoPageProcessor implements PageProcessor { -## 3. 使用注解 + private Site site = Site.me().setRetryTimes(3).setSleepTime(100); + + @Override + public void process(Page page) { + page.addTargetRequests(page.getHtml().links().regex("(https://github\\.com/\\w+/\\w+)").all()); + page.putField("author", page.getUrl().regex("https://github\\.com/(\\w+)/.*").toString()); + page.putField("name", page.getHtml().xpath("//h1[@class='entry-title public']/strong/a/text()").toString()); + if (page.getResultItems().get("name")==null){ + //skip this page + page.setSkip(true); + } + page.putField("readme", page.getHtml().xpath("//div[@id='readme']/tidyText()")); + } + + @Override + public Site getSite() { + return site; + } + + public static void main(String[] args) { + Spider.create(new GithubRepoPageProcessor()).addUrl("https://github.com/code4craft").thread(5).run(); + } +} +``` + +点击main方法,选择“运行”,你会发现爬虫已经可以正常工作了! + +![runlog](http://static.oschina.net/uploads/space/2014/0403/103741_3Gf5_190591.png) + +## 2.下载和编译源码 + +WebMagic是一个纯Java项目,如果你熟悉Maven,那么下载并编译源码是非常简单的。如果不熟悉Maven也没关系,这部分会介绍如何在Eclipse里导入这个项目。 + +### 2.1 下载源码 + +WebMagic目前有两个仓库: + +* [https://github.com/code4craft/webmagic](https://github.com/code4craft/webmagic) + +github上的仓库保存最新版本,所有issue、pull request都在这里。大家觉得项目不错的话别忘了去给个star哦! + +* [http://git.oschina.net/flashsword20/webmagic](http://git.oschina.net/flashsword20/webmagic) + +此仓库包含所有编译好的依赖包,只保存项目的稳定版本,最新版本仍在github上更新。oschina在国内比较稳定,主要作为镜像。 + +无论在哪个仓库,使用 + + git clone https://github.com/code4craft/webmagic.git + +或者 + + git clone http://git.oschina.net/flashsword20/webmagic.git + +即可下载最新代码。 + +如果你对git本身使用也不熟悉,建议看看@黄勇的 [从 Git@OSC 下载 Smart 源码](http://my.oschina.net/huangyong/blog/200075) + +### 2.2 导入项目 + +Intellij Idea默认自带Maven支持,import项目时选择Maven项目即可。 + +#### 2.2.1 使用m2e插件 + +使用Eclipse的用户,推荐安装m2e插件,安装地址:https://www.eclipse.org/m2e/download/[](https://www.eclipse.org/m2e/download/) + +安装后,在File->Import中选择Maven->Existing Maven Projects即可导入项目。 + +![m2e-import](http://static.oschina.net/uploads/space/2014/0403/104427_eNuc_190591.png) + +导入后看到项目选择界面,点击finish即可。 + +![m2e-import2](http://static.oschina.net/uploads/space/2014/0403/104735_6vwG_190591.png) + +#### 2.2.2 使用Maven Eclipse插件 + +如果没有安装m2e插件,只要你安装了Maven,也是比较好办的。在项目根目录下使用命令: + + mvn eclipse:eclipse + +生成maven项目结构的eclipse配置文件,然后在File->Import中选择General->Existing Projects into Workspace即可导入项目。 + +![eclipse-import-1](http://static.oschina.net/uploads/space/2014/0403/100025_DAcy_190591.png) + +导入后看到项目选择界面,点击finish即可。 + +![eclipse-import-2](http://static.oschina.net/uploads/space/2014/0403/100227_73DJ_190591.png) + +### 2.3 编译和执行源码 + +导入成功之后,应该就没有编译错误了!此时你可以运行一下webmagic-core项目中自带的exmaple:"us.codecraft.webmagic.processor.example.GithubRepoPageProcessor"。 + +同样,看到控制台输出如下,则表示源码编译和执行成功了! + +![runlog](http://static.oschina.net/uploads/space/2014/0403/103741_3Gf5_190591.png) + +## 3. 基本的爬虫 ### 3.1 抽取内容(xpath, regex, css selector, jsonpath) @@ -63,58 +162,66 @@ WebMagic 使用slf4j-log4j12作为slf4j的实现.如果你自己定制了slf4j ### 3.3 处理多个页面 -### 3.4 在POJO中实现复杂逻辑 +## 4. 使用注解 -## 4. 配置爬虫 +### 4.1 抽取内容(xpath, regex, css selector, jsonpath) -### 4.1 抓取频率 +### 4.2 发现链接 -### 4.2 编码 +### 4.3 处理多个页面 -### 4.3 代理 +### 4.4 在POJO中实现复杂逻辑 -### 4.4 设置cookie/UA等http头信息 +## 5. 配置爬虫 -### 4.5 重试机制 +### 5.1 抓取频率 -### 4.6 多线程 +### 5.2 编码 -## 5. 爬虫的启动和终止 +### 5.3 代理 -### 5.1 启动爬虫 +### 5.4 设置cookie/UA等http头信息 -### 5.2 终止爬虫 +### 5.5 重试机制 -### 5.3 设置执行时间 +### 5.6 多线程 -### 5.4 定期抓取 +## 6. 爬虫的启动和终止 -## 6. 管理URL +### 6.1 启动爬虫 -### 6.1 手动添加URL +### 6.2 终止爬虫 -### 6.2 在URL中保存信息 +### 6.3 设置执行时间 -### 6.3 几种URL管理方式 +### 6.4 定期抓取 -### 6.4 自己管理爬虫的URL +## 7. 管理URL -## 7. 抽取结果的处理 +### 7.1 手动添加URL -### 7.1 输出到控制台 +### 7.2 在URL中保存信息 -### 7.2 保存到文件 +### 7.3 几种URL管理方式 -### 7.3 JSON格式输出 +### 7.4 自己管理爬虫的URL -### 7.4 自定义持久化方式(mysql/mongodb…) +## 8. 抽取结果的处理 -## 8. 实例 +### 8.1 输出到控制台 -### 8.1 基本的列表+详情页的抓取 +### 8.2 保存到文件 -### 8.2 抓取动态页面 +### 8.3 JSON格式输出 -### 8.3 分页抓取 +### 8.4 自定义持久化方式(mysql/mongodb…) -### 8.4 定期抓取 \ No newline at end of file +## 9. 实例 + +### 9.1 基本的列表+详情页的抓取 + +### 9.2 抓取动态页面 + +### 9.3 分页抓取 + +### 9.4 定期抓取 \ No newline at end of file