• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

    golddata-spider: 1、规则简洁灵活易读易写 2、可反复采集数据而不产生重复 3、可同时 ...

    原作者: [db:作者] 来自: 网络 收藏 邀请

    开源软件名称:

    golddata-spider

    开源软件地址:

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

    开源软件介绍:

    GoldDataSpider

    介绍

    金色数据采集器开源项目,是用于抓取网页和抽取数据的工具。其核心代码是从金色数据采集与融合平台分离而来。

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

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

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

    完全免费的GoldData社区版

    GoldData社区版是一款抓取完全不受限(比如不限爬虫数量、抓取速度/时间、数据抓取数量、导出数据数量)的私有云软件,

    我们提供了详细的金色数据平台免费文档和培训视频,请点击这里查看和使用。

    添加QQ交流群:718556263。如果是在oschina或者github对本项目点赞将赠送一个月的专业版许可证。

    技术优势

    GoldData VS Scrapy

    GoldDataScrapy
    优势1、规则简洁灵活易写,提供辅助可视化/源码编辑器
    2、可反复采集数据而不产生重复
    3、可同时将数据及数据关系抓取融入到数据库中
    1、基于python脚本
    2、第三方资料较多
    3、国际化优势
    劣势目前只提供mysql数据库对接规则与python脚本代码混合,难以维护

    GoldData VS spiderman/spiderman2

    GoldDataspiderman/spiderman2
    优势1、规则简洁灵活易写,提供辅助可视化/源码编辑器
    2、可反复采集数据而不产生重复
    3、可同时将数据及数据关系抓取融入到数据库中
    劣势目前只提供mysql数据库对接脚本庞大,难以维护

    GoldData VS 其它商业采集器

    GoldData其它商业采集器
    优势1、规则简洁灵活易写,提供辅助可视化/源码编辑器
    2、可反复采集数据而不产生重复
    3、可同时将数据及数据关系抓取融入到数据库中
    4、提供完全免费不受限的数据采集功能
    1、提供“可视化”采集
    劣势1、目前只提供mysql数据库对接
    2、不提供"可视化"采集
    1、大多情况需写脚本,“可视化”很鸡肋
    2、免费版通常限制采集数量、导出数量或者爬虫数量

    使用入门

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

    1、对于maven项目

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

    2、对于gradle项目

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

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

    @Testpublic void testGoldSpider(){    String ruleContent=            "    {                                                      \n"+            "      __node: li.sky.skyid                                 \n"+            "      date:                                                \n"+            "      {                                                    \n"+            "        expr: h1                                           \n"+            "        __label: 日期                                      \n"+            "      }                                                    \n"+            "      sn:                                                  \n"+            "      {                                                    \n"+            "                                                           \n"+            "        js: md5(baseUri+item.date+headers['Content-Type']);\n"+            "      }                                                    \n"+            "      weather:                                             \n"+            "      {                                                    \n"+            "        expr: p.wea                                        \n"+            "      }                                                    \n"+            "      temprature:                                          \n"+            "      {                                                    \n"+            "        expr: p.tem>i                                      \n"+            "      }                                                    \n"+            "    }                                                      \n";    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使用。例如如下:

    @Servicepublic 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);    	}}

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

    可视化编辑器

    文档和培训视频

    规则内容以及文档请点击此处查看

    你可以查看oschina的与金色数据相关博文, https://my.oschina.net/u/4095696?tab=newest

    许可证

    Golddata-Spider 采用Apache License, Version 2.0 协议。


    鲜花

    握手

    雷人

    路过

    鸡蛋
    该文章已有0人参与评论

    请发表评论

    全部评论

    专题导读
    热门推荐
    阅读排行榜

    扫描微信二维码

    查看手机版网站

    随时了解更新最新资讯

    139-2527-9053

    在线客服(服务时间 9:00~18:00)

    在线QQ客服
    地址:深圳市南山区西丽大学城创智工业园
    电邮:jeky_zhao#qq.com
    移动电话:139-2527-9053

    Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap