功能概述 #
smLogin支持本地API的功能,帮助用户通过程序化的方式来读写浏览器配置信息、启动和关闭浏览器基础API功能,还可以配合Selenium和Puppeteer等自动化框架来实现浏览器操作的自动化,拥有高级API权限的用户还可以使用更多功能接口以及定制化的功能。
使用方法 #
- 购买smLogin团队协作版的用户具备使用API的权限
- 启动smLogin应用程序,登录具有API套餐权限的账号
- 当前版本API接口地址: http://127.0.0.1:51618/,端口号默认为51618,可在 resources\chrome\config.json 配置本地API服务地址
- 使用脚本或者http请求工具调用本地API接口,支持配置浏览器环境、启动/关闭浏览器等程序化操作
- API接口的参数类型都是字符串,POST的内容格式为JSON,非必需参数为可选参数可以不传递
- 访问频次控制,所有接口都具备访问频次控制各接口每秒最多请求1次
- 单日操作上限,添加浏览器操作上限为套餐的浏览器数量x10
- 单日操作上限,启动浏览器操作上限为套餐的浏览器数量x10
浏览器操作接口 #
启动浏览器 #
- 基本信息
接口路径: /api/v1/browser/open
请求方式: GET
接口描述:用于启动对应的浏览器,需要指定配置hash,启动成功后可以获取浏览器调用接口用于执行Selenium和Puppeteer自动化 目前smLogin采用94版Chrome内核,Selenium需要使用到匹配的Webdriver,启动浏览器后可在返回值中获取到对应的Webdriver的路径
- 请求参数
Query 非必需参数可以不传递
参数名称 | 必需 | 默认值 | 示例 | 说明 | 备注 |
hash | 是 | – | B3D6E7E5-1D0E-DAD1-8F0B-B55A50E1CF10 | 通过配置hash启动浏览器,新建环境后生成的唯一ID | |
headless | 否 | 0 | 1 | 是否启动 headless 浏览器 0:否(默认)1:是 |
- 返回数据
//执行成功
{
"errcode":0,
"data":{
//浏览器调用接口,可用于puppeteer自动化
"ws":"ws://127.0.0.1:xxxx/devtools/browser/xxxxxx",
//浏览器调用接口,可用于selenium自动化
"http":"127.0.0.1:xxxx",
// webdriver路径
"webdriver": "C:\\xxxx\\chromedriver.exe"
},
},
"message":"success"
}
//执行失败
{
"errcode":41000,
"data":{},
"message":"failed"
}
关闭浏览器 #
- 基本信息
接口路径: /api/v1/browser/close
请求方式: GET
接口描述:用于关闭对应的浏览器,需要指定配置ID
- 请求参数
Query 非必需参数可以不传递
参数名称 | 必需 | 默认值 | 示例 | 说明 | 备注 |
hash | 是 | – | B3D6E7E5-1D0E-DAD1-8F0B-B55A50E1CF10 | 通过配置hash启动浏览器,新建环境后生成的唯一ID |
- 返回数据
//执行成功
{
"errcode":0,
"data":{},
"message":"success"
}
//执行失败
{
"errcode":42000,
"data":{},
"message":"failed"
}
检查浏览器状态 #
- 基本信息
接口路径: /api/v1/browser/status
请求方式: GET
接口描述:用于检查浏览器的启动状态,需要指定配置ID
- 请求参数
Query 非必需参数可以不传递
参数名称 | 必需 | 默认值 | 示例 | 说明 | 备注 |
hash | 是 | – | B3D6E7E5-1D0E-DAD1-8F0B-B55A50E1CF10 | 通过配置hash启动浏览器,新建环境后生成的唯一ID |
- 返回数据
//执行成功
{
"errcode":0,
"data":{
//浏览器调用接口,可用于puppeteer自动化
"ws":"ws://127.0.0.1:xxxx/devtools/browser/xxxxxx",
//浏览器调用接口,可用于selenium自动化
"http":"127.0.0.1:xxxx",
// webdriver路径
"webdriver": "C:\\xxxx\\chromedriver.exe"
"status": "opened",
},
"message":"success"
}
//执行失败
{
"errcode":43000,
"data":{},
"message":"failed"
}
浏览器配置接口 #
添加浏览器配置 #
- 基本信息
接口路径: /api/v1/profile/create
请求方式: GET
接口描述:添加浏览器配置,支持配置平台Cookie,代理信息,指纹信息等,添加成功后返回配置hash
- 请求参数
Body 非必需参数可以不传递,传参格式为JSON
参数名称 | 必需 | 默认值 | 示例 | 说明 | 备注 |
name | 否 | BAY-US1 | 配置名称 | ||
notes | 否 | 美国EBAY号1 | 配置描述 | ||
operation_system | 是 | 当前操作系统,如 Windows | Windows | 操作系统,可选的值有:Windows, macOS, Linux, Android, iOS | |
timezoneSwitch | 否 | true | true | 基于IP填充时区,true|false | |
timezone_id | 否 | Asia/Shanghai | 时区,默认为空 | ||
webRTCSwitch | 否 | true | true | 基于IP填充WebRTC公网IP | |
wan_ip | 否 | 公网IP | |||
geoLocationSwitch | 否 | true | true | 基于IP填充地理位置 | |
browserType | 是 | Chrome | Chrome | 浏览器类型,可选的值有:Chrome,Firefox | |
user_agent | 是 | 用户代理 | |||
platform | 是 | Win32 | Win32 | 平台值,可选的值有:Win32, Win64, MacIntel, Linux i686, Linux armv7l, iPhone, iPod, iPad | |
screen_size | 否 | 屏幕分辨率,空表示跟随电脑设置 | |||
languageSwitch | 否 | true | true | 基于IP设置语言 | |
accept_language | 否 | Accpet_Language | |||
locale | 否 | 浏览器显示语言 | |||
dntSwitch | 否 | true | true | 设置是否愿意被站点追踪个人信息 | |
hardware_concurrency | 是 | 8 | 硬件并发数 | ||
device_memory | 否 | 设备内存 | |||
device_pixel_ratio | 否 | 设备像素比 | |||
max_touch_points | 否 | 最大触摸点 | |||
color_depth | 否 | 颜色深度 | |||
disableFontsSwitch | 否 | 为环境指定字体指纹保护 | |||
disable_fonts | 否 | 字体列表 | |||
mediaDevicesSwitch | 否 | 使用相匹配的值代替您真实的媒体设备ID | |||
videoInputNumber | 否 | 视频输入数量 | |||
audioInputNumber | 否 | 音频输入数量 | |||
audioOutputNumber | 否 | 音频输出数量 | |||
clientRectsSwitch | 否 | clientRects | |||
canvasSwitch | 否 | 画布指纹保护 | |||
audioContextSwitch | 否 | 声音指纹保护 | |||
WebGLImageSwitch | 否 | WebGL 图像 | |||
WebGLMetadataSwitch | 否 | WebGL 元数据 | |||
webgl_vendor | 否 | WebGL 厂商 | |||
webgl_renderer | 否 | WebGL 渲染 | |||
default_url | 否 | 默认打开的网址,每行一个 | |||
cookies | 否 | 第一个网址的Cookie信息 | |||
generate_count | 是 | 1 | 批量生成的个数 |
修改浏览器配置 #
- 基本信息
接口路径: /api/v1/profile/update
请求方式: GET
接口描述:修改浏览器配置,支持更新Cookie,代理信息,指纹信息等
- 请求参数
参数名称 | 必需 | 默认值 | 示例 | 说明 | 备注 |
name | 否 | BAY-US1 | 配置名称 | ||
notes | 否 | 美国EBAY号1 | 配置描述 | ||
operation_system | 是 | 当前操作系统,如 Windows | Windows | 操作系统,可选的值有:Windows, macOS, Linux, Android, iOS | |
timezoneSwitch | 否 | true | true | 基于IP填充时区,true|false | |
timezone_id | 否 | Asia/Shanghai | 时区,默认为空 | ||
webRTCSwitch | 否 | true | true | 基于IP填充WebRTC公网IP | |
wan_ip | 否 | 公网IP | |||
geoLocationSwitch | 否 | true | true | 基于IP填充地理位置 | |
browserType | 是 | Chrome | Chrome | 浏览器类型,可选的值有:Chrome,Firefox | |
user_agent | 是 | 用户代理 | |||
platform | 是 | Win32 | Win32 | 平台值,可选的值有:Win32, Win64, MacIntel, Linux i686, Linux armv7l, iPhone, iPod, iPad | |
screen_size | 否 | 屏幕分辨率,空表示跟随电脑设置 | |||
languageSwitch | 否 | true | true | 基于IP设置语言 | |
accept_language | 否 | Accpet_Language | |||
locale | 否 | 浏览器显示语言 | |||
dntSwitch | 否 | true | true | 设置是否愿意被站点追踪个人信息 | |
hardware_concurrency | 是 | 8 | 硬件并发数 | ||
device_memory | 否 | 设备内存 | |||
device_pixel_ratio | 否 | 设备像素比 | |||
max_touch_points | 否 | 最大触摸点 | |||
color_depth | 否 | 颜色深度 | |||
disableFontsSwitch | 否 | 为环境指定字体指纹保护 | |||
disable_fonts | 否 | 字体列表 | |||
mediaDevicesSwitch | 否 | 使用相匹配的值代替您真实的媒体设备ID | |||
videoInputNumber | 否 | 视频输入数量 | |||
audioInputNumber | 否 | 音频输入数量 | |||
audioOutputNumber | 否 | 音频输出数量 | |||
clientRectsSwitch | 否 | clientRects | |||
canvasSwitch | 否 | 画布指纹保护 | |||
audioContextSwitch | 否 | 声音指纹保护 | |||
WebGLImageSwitch | 否 | WebGL 图像 | |||
WebGLMetadataSwitch | 否 | WebGL 元数据 | |||
webgl_vendor | 否 | WebGL 厂商 | |||
webgl_renderer | 否 | WebGL 渲染 | |||
default_url | 否 | 默认打开的网址,每行一个 | |||
cookies | 否 | 第一个网址的Cookie信息 | |||
generate_count | 是 | 1 | 批量生成的个数 |
Body 非必需参数可以不传递,传参格式为JSON