VMLogin指纹浏览器是支持Selenium和Puppeteer等自动化操作接口自动化操作的
- Selenium浏览器自动化的java和Python 案例:查看Selenium案例
- VMLogin结合使用puppeteer案例:查看puppeteer案例
- 怎么控制IP地址转换成WebSocket地址:查看教程案例
移动仿真模式的mobile模式下,脚本无法生效,换成desktop脚本就能触动了
在每个VMLogin浏览器 — 其他配置 — 自定义浏览器启动参数里加入(如下方的示意图):
--single-process --disable-web-security
单进程模式 和 允许跨域 操作。这两种参数看看能不能解决问题。
1、单个设置:在每个浏览器中加入API命令,加入多个命令是中间加空格

2、全局设置:可以将API命令加入偏好设置内,每个新建的指纹浏览器都将默认执行

API远程访问配置:
在VMLogin软件里--我的账户--浏览器自动化设置--监听地址改为0.0.0.0,表示所有人都可以通过IP来连。如果设置了访问密码,请加password=xxxxx参数。

在每个VMLogin浏览器 — 其他配置 — 自定义浏览器启动参数里加入(如下方的示意图):
--disable-web-security
1、单个设置:在每个浏览器中加入API命令,加入多个命令是中间加空格

2、全局设置:可以将API命令加入偏好设置内,每个新建的指纹浏览器都将默认执行

##使用API执行JS##
<form action="http://127.0.0.1:35000/api/v1/profile/ExecuteScript" method="post">
profileId:<br>
<input type="text" name="profileId" value="">
<br>
JS (need base64 encode ):<br>
<input type="text" name="body" value="YWxlcnQoIm9rIik7">
<br><br>
<input type="submit" value="Submit">
</form>
1. 刷新页面:
http://127.0.0.1:35000/api/v1/profile/refresh?profileId=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
2. 关闭指定浏览器:
http://127.0.0.1:35000/api/v1/profile/stop?profileId=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx&force=false
3. 当前标签打开指定网址:
http://127.0.0.1:35000/api/v1/profile/openurl?profileId=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&url=www.vmlogin.cc
4. 获取网页源代码:
http://127.0.0.1:35000/api/v1/profile/source?profileId=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
5. 寻找网页中的元素:
http://127.0.0.1:35000/api/v1/profile/findElement?profileId=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&function=findElementByID&args=kw&click=false&index=-1
function 参数支持:
- findElementByID
- findElementByTag
- findElementByClassName
- findElementByLinkText
- findElementByXPath
- findElementsByID
- findElementsByTag
- findElementsByClassName
- findElementsByLinkText
- findElementsByXPath
args 参数为函数的参数,如:findElementByID(args)。click 参数为 true 时,找到元素后会执行点击操作,默认为 false。index 参数用于在多个元素中选择点击第几个,-1 为随机选择一个元素。
6.取指定元素属性值:
http://127.0.0.1:35000/api/v1/profile/getAttribute?profileId=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&args=[{“ELEMENT”: “95365abe-6746-4703-8cfd-6316580f5289”, “element-6066-11e4-a52e-4f735466cecf”: “95365abe-6746-4703-8cfd-6316580f5289”}, “style”]
args 参数,一般是通过findElement查找元素后得到的Element_ID结合成的JSON串。如:[{“ELEMENT”: “95365abe-6746-4703-8cfd-6316580f5289”, “element-6066-11e4-a52e-4f735466cecf”: “95365abe-6746-4703-8cfd-6316580f5289”}, “value”]
这个就是取 95365abe-6746-4703-8cfd-6316580f5289 元素的 value 值。
7. 通过选择器执行元素点击:
http://127.0.0.1:35000/api/v1/profile/findElement?profileId=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&function=findElementByID&args=kw&click=true&index=-1
8. 发送文字到网页中:
首先可以先使用 findElementByID 找元素的 elementId ,例如:
http://127.0.0.1:35000/api/v1/profile/findElement?profileId=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&function=findElementByID&args=kw&click=false&index=-1
也可以使用:findElementByXPath 方工找元素的 elementId ,例如:
http://127.0.0.1:35000/api/v1/profile/findElement?profileId=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&function=findElementByXPath&args=Ly8qW0BpZD0ia3ciXQ==&click=false&index=-1
上面 args 参数使用 base64 编码传输,解码后是://*[@id=”kw”]
上面GET请求会返回:
{“status”:”OK”,”value”:”{\”element-6066-11e4-a52e-4f735466cecf\”:\”49e49e71-2a55-4e79-a41b-86840ffd18c8\”}”}
其中 49e49e71-2a55-4e79-a41b-86840ffd18c8 就是要用到的elementId 。
http://127.0.0.1:35000/api/v1/profile/sendKeys?profileId=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&elementId=49e49e71-2a55-4e79-a41b-86840ffd18c8&value=5Lit5paHYWJjMTIz
上面 value 也使用了 base64 编码传输,防止GET传输失败。
value=5Lit5paHYWJjMTIz,就是换这个网页控件中发送 中文abc123 字符串。注意网页要加载完毕才能进行这些自动化操作,不然有可能动作会被阻塞。
这里的35000端口,是VMLogin指纹浏览器客户端软件中我的帐号里设置的端口,注意开启和变化。
为什么在软件界面上面直接创建的新配置和用API接口随机出来的配置参数信息差很多?
软件上面点创建随机的配置都没问题,API生成的都有问题。API参数要自己配置,UA可以随机获取,其它参数根据自己需求修改就好。
这个就是获取到(完整)配置信息,然后,根据您自己的需求提取需要的内容修改,可以比对一下软件里手工创建的有什么不同,针对性修改就好。
看一下接口访问链接有没有搞错,我们有线上接口和线下接口之分;
Base URL:https://api.vmlogin.com/v1
Local REST API 接口文档说明:点击查看
如何将google.com、facebook.com、twitter.com 等配置为不走代理 (DIRECT或REJECT)
在每个VMLogin浏览器 — 其他配置 — 自定义浏览器启动参数里加入(如下方的示意图):
--proxy-bypass-list=*.google.com,*.facebook.com,*.twitter.com
设置主机解析规则
# MAP * 0.0.0.0:将所有域名解析到 IP 地址 0.0.0.0。
# 这通常用于阻止所有网络流量,因为 0.0.0.0 是一个不可路由的地址。
# EXCLUDE localhost:排除 localhost,使其仍然解析到本地地址(通常是 127.0.0.1)。
--host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE localhost"
如果你想要将所有指向example.com的请求都解析到123.45.67.89这个IP地址,
--host-resolver-rules="MAP example.com 123.45.67.89"
只要解析到不存在的IP,就是拦载这个域名了。这样就是不走代理。
1、单个设置:在每个浏览器中加入API命令,加入多个命令是中间加空格

2、全局设置:可以将API命令加入偏好设置内,每个新建的指纹浏览器都将默认执行

- 先使用随机获取配置信息接口:https://m.vmlogin.com/zh-cn/v1/rest-api.html#/profile/randomProfile
- 获取到(完整)配置信息后,根据您自己的需求提取需要的内容
- 再使用创建浏览器配置文件接口:https://m.vmlogin.com/zh-cn/v1/rest-api.html#/profile/create 创建配置文件