Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
W
webmagic
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
沈俊林
webmagic
Commits
50cee4c7
Commit
50cee4c7
authored
Apr 03, 2014
by
yihua.huang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[doc] complete docs2.0 ch1
parent
9ec0ca02
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
146 additions
and
39 deletions
+146
-39
user-manual.md
user-manual.md
+1
-1
user-manual-new.md
zh_docs/user-manual-new.md
+145
-38
No files found.
user-manual.md
View file @
50cee4c7
...
...
@@ -65,7 +65,7 @@ webmagic还包含两个可用的扩展包,因为这两个包都依赖了比较
git clone http://git.oschina.net/flashsword20/webmagic.git
在
**
bin/
lib**
目录下,有项目依赖的所有jar包,直接在IDE里import即可。
在
**lib**
目录下,有项目依赖的所有jar包,直接在IDE里import即可。
--------
...
...
zh_docs/user-manual-new.md
View file @
50cee4c7
...
...
@@ -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 从源码安装

##
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方法,选择“运行”,你会发现爬虫已经可以正常工作了!

## 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即可导入项目。

导入后看到项目选择界面,点击finish即可。

#### 2.2.2 使用Maven Eclipse插件
如果没有安装m2e插件,只要你安装了Maven,也是比较好办的。在项目根目录下使用命令:
mvn eclipse:eclipse
生成maven项目结构的eclipse配置文件,然后在File->Import中选择General->Existing Projects into Workspace即可导入项目。

导入后看到项目选择界面,点击finish即可。

### 2.3 编译和执行源码
导入成功之后,应该就没有编译错误了!此时你可以运行一下webmagic-core项目中自带的exmaple:"us.codecraft.webmagic.processor.example.GithubRepoPageProcessor"。
同样,看到控制台输出如下,则表示源码编译和执行成功了!

## 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 定期抓取
\ No newline at end of file
### 9.4 定期抓取
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment