开源网页数据爬虫抽取工具 GoldDataSpider

GoldDataSpider 是用于抓取网页和抽取数据的工具。其核心代码是从金色数据抓取融合平台分离而来。

该项目提供抓取和抽取来自网页数据,不仅可以抽取网页内的内容,还能抽取URL、HTTP报头、Cookie里的数据。

该项目定义了一种简洁、灵活、敏捷的结构或者说是规则语法。极尽其所能将网页内容、HTTP报头、Cookie、甚至关联其它网页、其它网站数据,抽取出有意义有价值数据字段,组成一条数据记录。除此之外,还能内嵌http请求,以补充数据字段,比如某些字段需要向词典提供翻译这样的字段等等。

该项目还可支持从各种类型文档抽取数据,比如html/xml/json/javascript/text等。

使用入门

首先,我们需要将依赖加入项目当中即可(因为我们已经将该项目加入到maven中央仓库),如下:

1、对于maven项目

<dependency>
 <groupId>com.100shouhou.golddata</groupId>
 <artifactId>golddata-spider</artifactId>
 <version>1.1.3</version>
</dependency>

2、对于gradle项目

compile group: 'com.100shouhou.golddata', name: 'golddata-spider', version: '1.1.3'

然后你将可以使用该依赖所提供的简洁清晰的API,如下:

@Test
public void testGoldSpider(){
 String ruleContent=
 " { 
"+
 " __node: li.sky.skyid 
"+
 " date: 
"+
 " { 
"+
 " expr: h1 
"+
 " __label: 日期 
"+
 " } 
"+
 " sn: 
"+
 " { 
"+
 " 
"+
 " js: md5(baseUri+item.date+headers['Content-Type']);
"+
 " } 
"+
 " weather: 
"+
 " { 
"+
 " expr: p.wea 
"+
 " } 
"+
 " temprature: 
"+
 " { 
"+
 " expr: p.tem>i 
"+
 " } 
"+
 " } 
";
 GoldSpider spider= com.xst.golddata.GoldSpider.newSpider()
 .setUrl("http://www.weather.com.cn/weather/101020100.shtml")
 .setRule(ruleContent)
 .request();
 List list=spider.extractList();
 // List<Weather> weathers=spider.extractList(Weather.class);
 // Weather weathers=spider.extractFirst(Weather.class);
 list.forEach( System.out::println);
}

运行上面的测试,你将可以看类似下面的输出:

{date=19日(今天), weather=阴转小雨, temprature=10℃, sn=8bc265cb2bf23b6764b75144b255d81d}
{date=20日(明天), weather=小雨转多云, temprature=11℃, sn=9efd7e7bbbfb9bb06e04c0c990568bfd}
{date=21日(后天), weather=多云转中雨, temprature=11℃, sn=728539ac882721187741708860324afa}
{date=22日(周六), weather=小雨, temprature=9℃, sn=a23fa2233e750a3bdd11b2e200ed06c3}
{date=23日(周日), weather=小雨转多云, temprature=8℃, sn=b27e1b8a8e92a7bed384ceb3e4fdfb5f}
{date=24日(周一), weather=多云转小雨, temprature=8℃, sn=c142b7fd12330ca031dd96b307c0d50d}
{date=25日(周二), weather=小雨转中雨, temprature=6℃, sn=16f71d3c8f09394588532a3ed1a8bacf}

当作Service或者API使用

你可以在项目中,可以当作调用服务和API使用。例如如下:

@Service
public class WeatherServiceImpl implements WeatherService{
	public List<Weather> listByCityId(Long cityId){
		String url="http://www.weather.com.cn/weather/"+cityId+".shtml"
	 String rule="<同上>"
		GoldSpider spider= com.xst.golddata.GoldSpider.newSpider()
						.setUrl(url)
						.setRule(ruleContent)
						.request();
 
 return spider.extractList(Weather.class); 
	}
}

另外,你可以免费使用可视化辅助编辑器来编辑规则内容, 可视化辅助编辑器来自金色数据平台,可以点击链接下载,可视化编辑器截屏如下:

开源网页数据爬虫抽取工具 GoldDataSpider

项目代码

https://gitee.com/golddata/golddata-spider

整理来源:www.ruanbe.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值