[doc] complete docs2.0 ch1

pull/84/head
yihua.huang 11 years ago
parent 9ec0ca02c6
commit 50cee4c7bb

@ -65,7 +65,7 @@ webmagic还包含两个可用的扩展包因为这两个包都依赖了比较
git clone http://git.oschina.net/flashsword20/webmagic.git
在**bin/lib**目录下有项目依赖的所有jar包直接在IDE里import即可。
在**lib**目录下有项目依赖的所有jar包直接在IDE里import即可。
--------

@ -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。在项目
</dependency>
```
WebMagic 使用slf4j-log4j12作为slf4j的实现.如果你自己定制了slf4j的实现请在项目中去掉此依赖。
WebMagic使用slf4j-log4j12作为slf4j的实现.如果你自己定制了slf4j的实现请在项目中去掉此依赖。
```xml
<dependency>
@ -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.1 抽取内容(xpath, regex, css selector, jsonpath)
### 4.2 发现链接
### 4.3 处理多个页面
### 4.4 在POJO中实现复杂逻辑
## 4. 配置爬虫
## 5. 配置爬虫
### 4.1 抓取频率
### 5.1 抓取频率
### 4.2 编码
### 5.2 编码
### 4.3 代理
### 5.3 代理
### 4.4 设置cookie/UA等http头信息
### 5.4 设置cookie/UA等http头信息
### 4.5 重试机制
### 5.5 重试机制
### 4.6 多线程
### 5.6 多线程
## 5. 爬虫的启动和终止
## 6. 爬虫的启动和终止
### 5.1 启动爬虫
### 6.1 启动爬虫
### 5.2 终止爬虫
### 6.2 终止爬虫
### 5.3 设置执行时间
### 6.3 设置执行时间
### 5.4 定期抓取
### 6.4 定期抓取
## 6. 管理URL
## 7. 管理URL
### 6.1 手动添加URL
### 7.1 手动添加URL
### 6.2 在URL中保存信息
### 7.2 在URL中保存信息
### 6.3 几种URL管理方式
### 7.3 几种URL管理方式
### 6.4 自己管理爬虫的URL
### 7.4 自己管理爬虫的URL
## 7. 抽取结果的处理
## 8. 抽取结果的处理
### 7.1 输出到控制台
### 8.1 输出到控制台
### 7.2 保存到文件
### 8.2 保存到文件
### 7.3 JSON格式输出
### 8.3 JSON格式输出
### 7.4 自定义持久化方式(mysql/mongodb…)
### 8.4 自定义持久化方式(mysql/mongodb…)
## 8. 实例
## 9. 实例
### 8.1 基本的列表+详情页的抓取
### 9.1 基本的列表+详情页的抓取
### 8.2 抓取动态页面
### 9.2 抓取动态页面
### 8.3 分页抓取
### 9.3 分页抓取
### 8.4 定期抓取
### 9.4 定期抓取
Loading…
Cancel
Save