浏览器和移动APP采集的区别
优采云 发布时间: 2021-08-03 07:19浏览器和移动APP采集的区别
GoldData 模拟采集 脚本框架,支持浏览器和手机APP采集,专为采集 设计。它是一个集成驱动访问、过程控制、选择器、UI交互、代理和MITM、数据集和关键词存储的框架,大大简化了代码量。并且我们的agent和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()
Part二、我们创建了采集process 框架。因为我们使用模拟抓包,所以需要打开浏览器一次,也就是一个会话中的采集data,可以继续上一次采集,并且可以随时暂停、停止、提供输入干预。异常时可退回合理位置。最重要的是提供结构良好、易于阅读、修改和增强的代码。
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(,,,)
//创建启动带有代理的Google Chrome浏览器
__.chrome(__proxy.get())
在四、中,我们增加了关键词、数据集、访问和存储功能,以及waitForInput等,让采集人员可以专注于采集业务而不必专注于存储。
//访问关键词
$kw("city").add('New York')
//访问数据集
$dataset('area').add({sn:md5(url),name:'New York'});
第五,我们可以在线测试,边写代码边测试,大大提高了脚本编写效率。
第一个六、还可以结合GoldData平台,提供定时调度、分布式采集、数据融合等功能,一步一步将数据与数据的关系整合到你的数据应用表采集中.