java 爬虫 WebMagic(一)-Spider

现在做爬虫的大部分都在用Python,其实java也可以,这里介绍一款轻量级国产爬虫框架 Webmagic

官方地址:http://webmagic.io/

 

 

 

个人对于爬虫的理解分为2种,第一种是爬取页面(静态数据),第二种是爬取接口(动态加载的数据)

 

对于静态的页面数据,关键获取到页面document结构。

对于接口的数据,关键是找到接口链接和对应参数。

 

Webmagic对着两种都有非常简洁,易于理解的处理方案。

三个核心:PageProcessor,Pipeline,Spider

PageProcessor 实现爬取规则

Pipeline            实现数据持久化

Spider    启动爬虫,指定规则。

 

例如:

Spider.create(new MyProcessor())
.addPipeline(new MyPipeline())
.addUrl("http://www.xxxx.com").thread(3).run();

表示 启动一个爬虫,爬取规则为MyProcesser,爬取后的数据处理方式为MyPipeline,目标网站为http://www.xxxx.com,线程数量为3个,就是这么简洁。

如要处理非http GET的请求方式,可以同Request对象,例如:

Request request = new Request("http://xxx/path");
request.setMethod(HttpConstant.Method.POST);
request.setRequestBody(HttpRequestBody.json("{'id':1}","utf-8"));
Spider.create(new MyProcessor())
.addPipeline(new MyPipeline())
.addRequest(request).thread(3).run();

HttpRequestBody内置了几种初始化方式,支持最常见的表单提交、json提交等方式。

 

 

另附一张官方架构图

 

posted @ 2019-09-27 12:07  懒到饿死的猫  阅读(2733)  评论(0编辑  收藏  举报