爬虫可以通过自定义设置,暴露出一些可视化设置的接口,达到不修改代码也能配置爬虫的目的,方便把爬虫交付给普通用户来操作。此章介绍如何给爬虫添加自定义设置。
一个示例
先来看一个例子:var keyword = "papi酱";//@input(keyword, 关键字, 请输入要爬取的关键字)
上面这段代码首先定义了js变量keyword
,值为”papi酱”。后面有一段固定格式的注释,平台会解析这段注释,生成一个自定义项,键为keyword
,类型为String
,标题为关键字
,进一步的提示为请输入要爬取的关键字
。爬虫的设置里面会自动出现一个这样的输入项,默认值为”papi酱”,可以自由修改,修改保存后,再运行爬虫时,keyword的值会被先替换为最终设置的值。
定义规范
var 变量名 = 变量的值;//@输入方式(变量名, 标题, 提示) |
通过这样的语法来进行自定义项的定义,一个自定义项会生成一个对应的自定义设置。
- 变量名
自定义项的名字,前后两个一定要一致。 - 变量的值
变量的默认值,同时变量的类型会影响此自定义项的值类型。 - 输入方式
输入方式主要包括input
、password
、tags
、select
等,主要影响自定义设置的界面。 - 标题
自定义项的标题,用来在可视化设置时显示。不要使用英文逗号。 - 提示
设置此自定义项时的提示语。不要使用英文逗号。
下面介绍各个输入方式。
input
使用input时,自定义项的类型由变量默认值的类型决定,包括String类型、布尔类型、数字类型、数组类型、JS对象。
String类型
在代码中设置自定义输入参数的例子:var key = "苹果手机, 网多云云爬虫";//@input(key, input参数是string类型, 示例)
在爬虫设置中修改自定义输入值:
布尔类型
在代码中设置自定义输入参数的例子:var inputBooleanTrue = true;//@input(inputBooleanTrue, input参数是boolean类型,值是true, 示例)
var inputBooleanFalse = false;//@input(inputBooleanFalse, input参数是boolean类型,值是false, 示例)
在爬虫设置中修改自定义输入值:
数字类型
在代码中设置自定义输入参数的例子:var inputInt = 1;//@input(inputInt, input参数是整型, 示例)
在爬虫设置中修改自定义输入值:
数组类型
在代码中设置自定义输入参数的例子:var inputArray = ["https://www.example.com", "http://www.example2.com"];//@input(inputArray, input参数是数组类型, 示例)
在爬虫设置中修改自定义输入值:
JS对象
在代码中设置自定义输入参数的例子:var inputObject = {"key":"value"};//@input(inputObject, input参数是对象类型, 示例)
在爬虫设置中修改自定义输入值:
password
1). 在采集爬虫中支持的输入方式, 用于通过输入框修改自定义输入的值
2). 该输入方式可以对自定义输入的值进行遮蔽处理
在代码中设置自定义输入参数的例子:var pwd = "123456";//@password(pwd, password密码参数, 示例)
在爬虫设置中修改自定义输入值:
tags
在采集爬虫中支持的输入方式, 用于通过输入框修改自定义输入的值, 可输入多条数据, 每输入一条数据需”按回车键”或”空格键”作为输入结束标记
在代码中设置自定义输入参数的例子:var tags = ["当时我就震惊了", "papi酱", "新闻哥"];//@tags(tags, tags数组, 示例)
在爬虫设置中修改自定义输入值:
select
在采集爬虫中支持的输入方式, 用于通过选择选择框中的选项修改自定义输入的值, 默认选择第一个选项作为自定义输入的值
在代码中设置自定义输入参数的例子:var selectData = "1";//@select(selectData, select参数选择, 示例)
var uiconfigs = {
inputs: [
{
name: "selectData",
onLoad: function() {
// "addOption"的第一个参数是选择项的值
// "addOption"的第二个参数是选择项的别名
ui("selectData").addOption('1', '苹果')
.addOption('2', '桔子').addOption('3', '香蕉');
}
}
]
};
// 这段代码不能少
ui.render(uiconfigs);
在爬虫设置中修改自定义输入值: