GoldData仿真采集脚本框架

GoldData仿真采集脚本框架,支持浏览器和移动APP采集,是专为采集而设计的。是集驱动访问、流程控制、选择器、UI交互、代理与MITM、数据集、关键词存储为一体并极力简化代码量的框架。且我们的代理与MITM工具提供拦截http(s),socks协议,可以完成市面99.9%的网站和手机App采集。

第一、我们对代码做了大量的语法糖。比如我们将webdriver以及Appium中的选择器,变成JQuery式的链式调用。如:

//打开IE浏览器
__.IE()
//打开Chrome浏览器
__.chrome()
//打开安桌指定App
__.android('com.example.news','.Activity')
//抽取内容
var ret=$id("article").css("table").html()
//或者
ret=$xpath("//table/tr").css("td.single").html()
//或者
$css("table").css("tr").name("btn").click()

第二、我们创建了采集流程框架。因为使用仿真抓取,我们需要在一次打开的浏览器中,也就是一个会话里采集数据,并且可以接续上一次采集,并且能够随时暂停、停止、并能提供输入介入,如果遇到异常还能退回合理的地方。最重要的是提供了一个层次分明的代码,可以便于阅读、修改和增强脚本。

Gold({
    main:function(){
        __.chrome();
    },
    list:function(){
        var kw=$kw('region')
        var str=null
        while((str=kw.next())){
             //创建浏览器新标签页,并将驱动自动切换到该标签页
            __switch.newWindow('http://www.example.com/page/'+kw)
            var ret=forward('page'))
             if(ret){
                //...
             }
             kw.submit(str)
             //关闭当前标签页
            __switch.close();

        }
    },
    page:function(){
        var item={}
        item.name=$css('#name').text()
        if(!item.name){
            backward('list')
            return;
        }
        item.sn=md5(name)
        $dataset('shop').add(item)
    }
})

第三、我们添加和集成了代理和MITM工具,并且努力让其支持http(s)协议外,还添加了对socks协议支持。让这些协议都可以做到修改请求与响应功能。 这大大增强了采集能力与速度。

//获取代理表里的地址
var proxydb=__proxy.db('cate1')
//创建代理
__proxy.createServer(true,proxydb.last().url).start(0);
//添加拦截器,比如将不需要请求的内容去掉。
__proxy.addFilter(<client2Proxy>,<proxy2Server>,<server2proxy>,<proxy2client>)
//创建启动带有代理的Google Chrome浏览器
__.chrome(__proxy.get())

第四、我们添加了关键词、数据集、访问与存储功能,以及waitForInput等等内容,让采集人员可以专注采集业务,而无需关注存储。

//访问关键词
$kw("city").add('New York')
//访问数据集
$dataset('area').add({sn:md5(url),name:'New York'});

第五,我们可以联机测试,边写代码边进行测试,极大提高编写脚本的效率。

第六、还可结合GoldData平台,提供定时调度,分布式采集、以及数据融合功能,将数据与数据关系一步到位采集和融合到你的数据应用表中。

转载于:https://my.oschina.net/u/4095696/blog/3049920

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值