中文 | EN
基于标记语言的开源爬虫框架。查看Salyut语法。
Salyut 是trico script的的解析执行引擎,通过简单的调用Salyut中方法,即可以运行trico script并得到相应的结果。Salyut是一个开源项目,您可以自行修改expr目录下的类定制自己语法表达式,也可以通过修改或增加token目录下的类来扩充Salyut的能力。
Salyut基于的技术
-
通过Yaml来对词法进行解析,如果您对Yaml有一定的了解,可以更好的帮助您提升trico script的一些语言特性。
-
主要通过Selenium来获取浏览器的操控和解析能力,如果您对Selenium有一定的了解可以更好的帮助您提升trico script的一些能力。
- segment: #This is a trico script sample. A web calculator.
name: '"calc"'
args: {0: '/input'}
body:
- load: '"http://www.baidu.com"' #load page of Baidu
- wait: {ele: '#su', type: '"presence"'} #wait element appear
- fill: {ele: '#kw', value: '$/input'}
- click: {ele: '#su'} #click search button
- wait: {ele: '.op_new_val_screen_result', type: '"presence"'} #fetch the result
- select: {ele: '.op_new_val_screen_result', path: '/result'}
- put: { path: '/resultInt', value: '$/result', lambda: 'x -> return parseInt(x)'}
- return: '$/resultInt'
- callin: {seg: '"calc"', 0: '"1+1"'} #call the segment named 'calc' and pass the argument '1+1'
- return: '$1'
-
jar包调用
1.在工程目录使用
mvn clean package
打包2.
cd target
3.
java -Dscript.path=../sample/webCalc.tr -Ddriver.path=../env/geckodriver-macOS -classpath salyut-jar-with-dependencies.jar com.trico.salyut.Salyut
4.参数说明
-
代码调用
Salyut.setEnv(EnvKey.DRIVER_PATH,{your driver path});
Salyut.setEnv(EnvKey.NEW_TAB_PATH,{your newTab file path});
Salyut.launch();
Salyut.setOutputListener(
msg -> {
//引擎处理过程中产生的消息
}
);
Salyut.setResultListener(
result -> {
//返回结果
}
);
String script = {your script content};
TricoScript script = new TricoScript(yaml);
Salyut.execScript(script.getContent(),"","");
<dependency>
<groupId>com.trico.salyut</groupId>
<artifactId>salyut</artifactId>
<version>0.0.8-SNAPSHOT</version>
</dependency>
Salyut 使用 Apache 2.0 许可证,您可以免费下载,修改以及部署源代码。您还可以将Salyut Engine进行服务化封装,从而让Salyut Engine具有更强大的业务处理能力。
Salyut 还添加了Commons Clause 1.0条款,对于您通过Salyut Engine进行服务化封装后进行商业售卖做了限制。当然我们还是希望Salyut Engine能够更好的作出开源贡献,所以如果您对如何商用Salyut Engine有更好的想法,请随时与我们联系feedback@trico.cloud
目前Salyut已经应用于Trico Cloud商业平台,Trico Cloud致力于通过提供爬虫云原生服务,解决高可用,低成本数据抓取,并为爬虫开发者与使用者提供更好的爬虫生态。