crawler爬虫demo, 基于gecco
来源:互联网 发布:按揭贷款月供怎么算法 编辑:程序博客网 时间:2024/05/28 11:28
今天我们来写一下基于gecco的爬虫例子。
当然还是以"x东"页面为例,链接:https://www.jd.com。
首先我们主要需要gecco包:
<dependency>
<groupId>com.geccocrawler</groupId>
<artifactId>gecco</artifactId>
<version>1.2.8</version>
</dependency>
好了,我们来不如正题吧!
先创建一个类(CatalogItemModel)有这两个:
@Text
@HtmlField(cssPath = "a")
private String title;
@Attr("href")
@HtmlField(cssPath = "a")
private String href;
这是指定爬取a链接;
在创建CatalogTopModel类:
@HtmlField(cssPath ="a.cate_menu_lk")
private List<CatalogItemModel> items;
public List<CatalogItemModel> getItems() {
return items;
}
public void setItems(List<CatalogItemModel> items) {
this.items = items;
}
这里指定到具体class属性了;
接着创建:
@Gecco(matchUrl = { "https://www.jd.com" }, pipelines = { "catalogPipline" }, timeout = 15000)
public class CatalogModel implements HtmlBean {
private static final long serialVersionUID = 1L;
@HtmlField(cssPath = "div.fs_col1 > div.J_cate.cate > ul.JS_navCtn.cate_menu > li.cate_menu_item")
private List<CatalogTopModel> tops;
@HtmlField(cssPath = "div.fs_col1 > div.J_cate.cate > div.JS_popCtn.cate_pop > div#cate_item1.cate_part.clearfix > div.cate_part_col1 > div.cate_detail > dl.cate_detail_item")
private List<CatalogTypeModel> types;
public List<CatalogTopModel> getTops() {
return tops;
}
public void setTops(List<CatalogTopModel> tops) {
this.tops = tops;
}
public List<CatalogTypeModel> getTypes() {
return types;
}
public void setTypes(List<CatalogTypeModel> types) {
this.types = types;
}
}
这儿就是指定具体爬取路径,层级关系;
这个类:
@PipelineName("catalogPipline")
public class CatalogPipline implements Pipeline<CatalogModel> {
@Override
public void process(CatalogModel bean) {
System.out.println("*************************一***************************");
List<CatalogTopModel> tops = bean.getTops();
for (CatalogTopModel top : tops) {
for (CatalogItemModel item : top.getItems()) {
System.out.print(item.getTitle() + "|");
}
System.out.println();
}
System.out.println("*************************二***************************");
List<CatalogTypeModel> types = bean.getTypes();
for (CatalogTypeModel type : types) {
System.out.println(type.getDt().getTitle());
}
}
}
这儿就是处理页面上每个a链接相隔的“|”符合,我们不单单是爬取内容,也要有对应的格式;
这是最后一个类了:
public class CatalogTopModel implements HtmlBean {
private static final long serialVersionUID = 1L;
@HtmlField(cssPath ="a.cate_menu_lk")
private List<CatalogItemModel> items;
public List<CatalogItemModel> getItems() {
return items;
}
public void setItems(List<CatalogItemModel> items) {
this.items = items;
}
}
这儿我就不重复说了;
最后我们来写一个Start测试类:
public class Start {
public static void main(String[] args) {
GeccoEngine.create()
// Gecco搜索的包路径
.classpath("com.paiye.crawler.jd.demo")
// 开始抓取的页面地址
.start("https://www.jd.com")
// 开启几个爬虫线程
.thread(1)
// 单个爬虫每次抓取完一个请求后的间隔时间
.interval(2000).start();
}
}
ok,启动爬取成功,爬取结果
*************************一***************************
家用电器|
手机|运营商|数码|
电脑|办公|
家居|家具|家装|厨具|
男装|女装|童装|内衣|
美妆个护|宠物|
女鞋|箱包|钟表|珠宝|
男鞋|运动|户外|
汽车|汽车用品|
母婴|玩具乐器|
食品|酒类|生鲜|特产|
礼品鲜花|农资绿植|
医药保健|计生情趣|
图书|音像|电子书|
机票|酒店|旅游|生活|
理财|众筹|白条|保险|
*************************二***************************
大家可以在Gecco爬虫框架官网学习,http://www.geccocrawler.com/
Gecco爬虫框架官网
Gecco爬虫框架官网
- crawler爬虫demo, 基于gecco
- 使用轻量级JAVA 爬虫Gecco工具抓取新闻DEMO
- 用Gecco爬虫采集数据
- crawler 爬虫介绍
- Java爬虫Crawler
- php爬虫框架crawler
- java简易爬虫Crawler
- java简易爬虫Crawler
- Gecco开源爬虫框架入门
- android数据获取 java爬虫 Gecco
- 使用Gecco写Java简单爬虫
- 爬虫crawler和查询searcher
- Crawler爬虫实例:huawei appstore
- Crawler——链接爬虫
- 教您使用java爬虫gecco抓取JD全部商品信息
- java爬虫gecco监控来了,不再裸奔
- gecco 1.0.9 发布,易用的轻量化爬虫
- Gecco爬虫框架的线程和队列模型
- 在CentOS7上安装JDK1.8
- 详解mysql分区与分表
- 使用 PowerShell 管理 Azure 磁盘
- 机器学习笔记(四) 多变量线性回归
- localStorage和sessionStorage
- crawler爬虫demo, 基于gecco
- GPIO上拉下拉电阻的原理
- 错误集锦
- 数据显示列表 Table中 td 某列字段缩短省略
- In Android 8.0, the MountService class was renamed to StorageManagerService.
- MySQL运算符的优先级
- 跳马
- Hadoop 任务执行方面的优化
- python 列表list初始化