Dolphin {anty} 脚本构建器
什么是脚本构建器 🧐
可以这样理解:浏览器中的每个操作(点击、按下按钮、输入账号和密码等)都可以交给机器人完成。只需要创建一个“脚本”,也就是“机器人”要执行的一系列操作。
例如:需要让机器人在所有 FB 账号 (数量不限) 上执行某个操作,比如确认绑卡。如果手动操作,这项任务要花好几个小时:需要登录每个配置文件,执行一系列操作,然后退出。账号很多时,就会浪费大量时间。使用这个功能,可以创建一个简单的脚本,自动完成所有需要的操作 😉
场景入门 📖
场景基于日常工作中通常很耗时的操作。创建一系列“操作”后,它们会在浏览器配置文件中自动执行。
- 要开始使用,请点击左侧菜单中的图标,打开“场景”页面:

- 页面会直接提示你点击“创建脚本”按钮,创建第一个脚本

- 这个窗口还会显示之前创建的所有脚本,可以对它们进行删除、复制、共享或编辑。

- 创建脚本后,会打开用“模块”搭建脚本的工作区
转移脚本 📦
转移功能可以把现成的脚本分享给其他 Dolphin{anty} 用户,无需手动重新搭建模块或设置。脚本既可以在同一团队内转移,也可以在不同账号之间转移。
如何使用?
只需输入对方的邮箱地址,就能把脚本发送给任何 Dolphin{anty} 用户。此功能从 Starter 起的所有套餐都可用。
转移限制:
- Starter 套餐:每天最多转移 50 次。
- 其他套餐:不限次数。
⚠️ 注意:如果使用该脚本的浏览器配置文件正在运行,则无法转移脚本。请先停止配置文件再转移。
转移选项 🔗
转移窗口中有“创建并转移脚本副本”开关,它决定脚本是否保留在当前账号中:
- 转移原件:脚本转给接收者,并从发送者的列表中移除。
- 转移副本:原脚本保留在发送者那里,接收者得到一份相同的副本。

团队共享的脚本 👥
- 如果脚本在整个团队中共享,把原件转移给团队外的人后,它会从所有团队成员那里消失。要让团队继续使用该脚本,请保持“创建并转移脚本副本”开关为开启状态。

- 此外,如果转移由不是共享脚本所有者的附加用户发起,只能发送副本。这时“创建并转移脚本副本”开关会默认开启并锁定,以保护原始数据。

脚本创建工作区 🛠️

界面元素 ⬇️
- 左上角有绿色的“保存脚本”和“查看日志”按钮,日志中记录了脚本运行时的操作。每次创建或编辑脚本后,别忘了点击保存按钮!
- 左侧是所有可用模块/操作的列表,可以拖到工作区,也可以直接点击让模块出现在工作区中。
- 中间是工作区本身,可以在这里放置模块,并把它们连接成链条/序列。
- 底部中间是配置文件运行和工作区控制区:
- 撤销操作:可以撤销添加不需要的模块 (左右箭头)。
- 选择配置文件:选择要立即运行脚本的配置文件,可以快速开始自动化。选择“空白浏览器”会创建一个用于测试脚本的临时配置文件 (不会保存,仅用于测试,使用电脑的 IP 地址)。做好的脚本也可以在“浏览器配置文件”页面上对多个所选配置文件运行。

- 逐步运行脚本:可以运行到需要的步骤,暂停或停止脚本,修改模块后再次运行。
- “三个点”:可以在这里选择配置文件的运行方式:
- Headless 模式:脚本运行时不显示浏览器窗口,适合同时在大量配置文件上运行,例如 20 个。这对 FB 养号等不需要看到所有浏览器窗口的任务很有用。
- “关闭图片”:在这种模式下运行脚本时不加载图片,使用移动代理时可以节省流量并加快运行速度。不过,如果需要图片(例如图片验证码),可能会出现问题。
- “指针”和“框选”工具:用框选工具可以一次移动或删除多个模块,指针工具则一次选择一个模块。
模块操作 ✍🏻
要删除某个操作(例如“关闭标签页”),双击模块,或按住 Shift 一次选择多个模块,然后按键盘上的 Del 删除。

把第一个模块连接到绿色的“开始”圆圈 这样脚本就知道流程从哪里开始。 所有操作之间都要用 🧵 连线连接,这样构建器才能理解操作的顺序。 点击 ❌ 或并联连接 2 条线,可以取消连线。 红线提供另一种选择。红线是一张安全网:如果绿线没有走通,或者网站出了问题、脚本本应点击的按钮没有显示,它会转到另一个操作。例如,脚本会沿着红线走到某个模块。

系统变量 ✅
部分操作模块会使用包含浏览器配置文件参数的系统变量作为输入数据。批量登录主流社交网络,或创建不仅在浏览器内、还在配置文件之间交互的脚本时,需要用到它们。系统变量不能修改,也不能用作输出。
- Browser_profile_id:配置文件 ID
- Browser_profile_name:配置文件名称
模块分类 ⬇️
导航模块 🧭
导航模块用于与网页交互:打开或刷新页面、跳转到 URL、切换标签页等。平时通过地址栏完成的操作都可以自动化。
例如,如果浏览器中的第一个操作是打开某个网页,只需指定 URL,机器人就会自动打开它。

- 新标签页:可以输入构建器要在新标签页中打开的 URL 地址。 此模块支持“可修改资源”,详见下文。
- 激活标签页:选中指定的标签页,切换到该标签页中工作。
- 关闭标签页:可以关闭当前标签页,或指定要关闭的标签页序号。
- 打开 URL:在已打开的标签页中打开指定的 URL。
- 刷新页面:刷新预先指定的标签页中的页面。
可修改资源 🌠
这是团队协作的便利工具:脚本创建者把脚本共享给团队中的所有用户时,每个用户都可以在该元素中指定自己的操作,而不是使用创建者指定的内容。
鼠标模块 🖱
鼠标模块包含尽可能真实地模拟光标移动的操作。点击某个按钮、滚动到网页上的指定元素,只需设置必要的参数就能轻松完成。
例如,打开网页后需要点击某个输入框或按钮来输入数据,只需指定坐标或要点击的页面元素即可。

点击:模拟鼠标点击

- 选择脚本要使用的鼠标按键
- 可以指定使用选择器或坐标
选择器有 3 种 ⬇️
XPath:可以按元素的任意属性查找。开发者经常给各种标签添加自定义属性,可以用来搜索 DOM 树、选取作者的博客文章或搜索表格等。其他查找方法失效时,XPath 依然有效。
很多网页上都有表格,同一页面上往往有好几个,每个表格可能有上百行。如何为“In Concordance”单元格中的链接写选择器?类名可能在上层,标签都一样,也完全没有属性。XPath 凭借自身特性和全文搜索能力,可以很好地处理这种情况。例如:
//[contains(.,'Deals')]//td[contains(.,'Pending')]//a
这样的选择器易读,需要时也便于修改。
此外,XPath 也很灵活。如果在上面的例子中,记录集合包含“Procurement”,可以把采购编号作为附加条件,例如:
//*[contains(.,'Transactions')]//tr[contains(.,'Procurement 4')]//td[contains(.,'Under approval')]//a
在浏览器中获取页面元素的 XPath:按 CTRL+Shift+C(Mac 上为 CMD+Shift+C),然后在页面上选中需要的元素并点击。之后该元素的代码会被高亮显示,可以从中复制 XPath 格式的路径。

CSS:通过元素在样式表中的值来选取元素,是更方便、也更常用的选择器。了解更多
文本:上面两种的简化版,直接通过指定页面上的文本选取元素
这是“最后的办法”:选择器完全不可用时才用。有些网站每次更新都会彻底改变结构,以防止自动化。对这些网站只能用坐标。
- 移动鼠标:原理与坐标相同。
- 滚动:模拟在页面上滚动鼠标滚轮到某个坐标 (无法指定滚动速度)。
键盘模块 ⌨️
键盘:与鼠标类似,可以输入任意文本或按下任意按键,脚本会自动执行。只需指定初始参数。
例如,要输入账号的登录名和密码,只需把参数提供给机器人,它会自己完成输入。

- 按下按键:指定在某个区域按下的按键。
- 输入文本:指定在某个区域输入的文本。
此模块支持可修改资源。
组合键只能从可用列表中选择。
数据模块 🗂
数据是最重要的模块之一。
浏览器中的大部分操作都涉及与网页上的数据交互。例如,可能需要保存所有卡片的数据,然后自动填入每个账号;或者从电脑上的指定文件夹加载广告活动的素材;也可能需要下载一张有趣的表情包发给奶奶 😁。指定好向每个广告后台上传素材的文件夹后,就可以用我们的功能把这个过程自动化。关于如何正确使用此模块中的操作,之后会提供详细说明。

- 元素存在:使用与点击模块相同的选择器原理。
- 获取 URL:把链接写入变量,之后可以保存,例如保存到文件中。
- 获取文本:从指定区域复制文本并为其创建变量,之后可以通过该变量把文本粘贴到输入文本或其他类似功能中。 此模块支持 可修改资源
- 获取属性值:从网站元素的 value 中获取值。该功能选取第一个带有
<value>属性的字符串,并写入变量。 - 获取 value 属性值:可以指定任意属性,有哪些属性可以看这里。HTML 中有各种属性,例如
<div class="abcd">text element</div>中,class 是属性,abcd 是它的值。这也是从指定元素获取信息的实用方法。 - 随机:在指定字段中生成随机文本(Email、全名、随机字母、密码、名、姓、数字)。
- 文件上传:向网站上传文件,例如头像。
重要的是找到
type为 file 的 input 元素(<input type="file" />),并复制它的 XPath 格式路径 (例如),可能是这样的://*[@id="add_files_btn"]。通常上传组件中的大“上传”按钮实际上并不上传任何内容,而是去点击真正的input type="file"元素。 此模块支持 可修改资源 - 读取文件:从硬盘读取文件。例如可以从电脑上的文件中提取文本,粘贴到网站的某个输入框中。 此模块支持 可修改资源
- 写入文件:把指定变量中的数据保存到指定文件 (可用格式:TXT、CSV、JSON、DOCX、DOC、XLSX)。例如:用获取文本通过 XPath 从页面获取文本并为其创建变量,然后用写入文件 (指定要写入的文件路径,例如 TXT 文件,并选择写入模式)。 此模块支持 可修改资源
- HTTP:创建请求,例如可以用它对接 Telegram 或短信服务,或者通过链接更换移动代理的 IP。
- 创建变量:顾名思义,创建变量并为其赋值。如果再创建一个同名变量,可以修改它的值。 此模块支持 可修改资源
- Spintax 是一种文本语法,形式如下:
{Hello|Good afternoon}! I hope you're in a {good|great} mood! {{Thank you and|Wishing you a great day|Good luck|Bye}!它用于从一组选项中生成随机文本。例如,上面的 spintax 可以生成这样的文本:“Good afternoon, I hope you are in a great mood! Have a great day!”,每次都会不同,共有 16 种可能的组合。 此模块支持 可修改资源 - 获取手机号:与校验短信验证码功能配合使用,通过 sms-activate.org 服务获取手机号,之后该号码会收到用于在网站上验证身份的短信验证码。 此模块支持 可修改资源
- 校验短信验证码:接收发到上述功能所创建号码的验证码。需要填写 sms-activate.org 的访问令牌。建议在校验验证码前至少等待 20 秒(设置暂停),让短信有时间到达;并且每 5 秒最多校验一次,以免被 sms-activate.org 封禁。 此模块支持 可修改资源,详见这里。
- 识别验证码:机器人(rucaptcha.com 服务)替用户通过验证码。
验证码有 2 种:
- 文字验证码:只需指定用于确定验证码位置的选择器 (带文字的图片)。然后指定输出变量的名称,为验证码输入框添加点击操作,再使用“输入文本”功能,填入在“识别验证码”模块中写入输出变量的那个变量。
\
- Google ReCaptcha(V2) 图片验证码:只需指定定位验证码的选择器,并添加点击操作,例如点击“OK”或“Pass” (取决于网站)。之后就可以继续执行脚本。
- 文字验证码:只需指定用于确定验证码位置的选择器 (带文字的图片)。然后指定输出变量的名称,为验证码输入框添加点击操作,再使用“输入文本”功能,填入在“识别验证码”模块中写入输出变量的那个变量。
重要!需要在 rucaptcha.com 网站注册并在账户中充值才能通过验证码,否则无法使用此功能。在该网站获取访问令牌后,把它填入对应的 rucaptcha.com 令牌字段。此模块支持 可修改资源
Dolphin{anty} 模块 🐬
此模块用于在配置文件外部与 Dolphin {anty} 的功能交互。

- 配置文件状态:为浏览器配置文件设置状态,可以在任何阶段设置。例如,养号或完整执行所需操作后,可以设置状态“Done”。
- 配置文件备注:为浏览器配置文件设置备注,可以在任何阶段设置。例如,开始养号前,可以在备注中写入“FB 账号的登录名和密码”。
扩展模块 🧩
扩展:此模块包含与已安装的 Chrome 浏览器扩展交互的操作。可以打开扩展的 popup、点击其中的元素、输入文本和获取数据。

- 打开扩展 popup:打开指定 Chrome 扩展的 popup 窗口。需要提供扩展 ID (32 个字符的字符串)。还可以选择设置打开后要等待的 CSS 选择器,以及以毫秒为单位的超时时间 (默认:10000)。
- 在扩展中点击:点击扩展 popup 中的元素。需要指定扩展 ID、鼠标按键 (左键 / 右键 / 中键) 和选择器类型 (XPath、CSS 或文本)。
- 在扩展中输入:在扩展 popup 的输入框中输入文本。需要指定扩展 ID、选择器类型 (XPath 或 CSS)、要输入的文本、按键间隔(毫秒) (默认:50),还可以选择在输入前清空输入框。
- 从扩展中获取文本:读取扩展 popup 中指定元素的文本并保存到变量。需要指定扩展 ID、选择器类型 (XPath 或 CSS) 和输出变量。
- 关闭扩展 popup:关闭指定扩展的 popup。如果 ID 字段留空,会一次关闭所有已打开的扩展 popup。
- 等待扩展中的元素:等待扩展 popup 中出现指定元素。需要指定扩展 ID、选择器类型(XPath 或 CSS)、等待状态 (可见 / 隐藏 / 已附加到 DOM) 和以毫秒为单位的超时时间 (默认:10000)。
- 获取扩展列表:获取所有已安装扩展的列表并保存到指定变量。
- 扩展元素存在:检查扩展 popup 中是否存在指定元素。需要指定扩展 ID 和选择器类型 (XPath 或 CSS)。与“条件”模块配合使用效果很好,可以让脚本沿绿线或红线分支。
- 查找扩展:在已安装的扩展中按名称查找扩展,并把它的 ID 保存到变量。支持 4 种查找方式:包含、完全匹配、以…开头、以…结尾。用这个模块可以动态获取所需扩展的 ID,不必在每个脚本中写死。
弹出窗口模块 🪟
弹出窗口:用于处理浏览器弹出窗口的操作,可以在窗口之间切换、关闭窗口,以及等待窗口出现。

- 切换到 popup:把浏览器焦点切换到已打开的弹出窗口。例如,点击链接打开新窗口后,用这个模块可以继续在新窗口中操作。
- 关闭 popup:关闭当前的浏览器弹出窗口。
- 等待 popup:等待弹出窗口出现后再执行下一个操作。例如,点击按钮后预计会打开新窗口,需要等它出现再切换过去时,就用这个模块。
其他模块 🌌
其他:包含不属于上述分类的操作。可以添加数据处理循环,或让机器人的操作随机化 (例如插入暂停),让脚本模仿真实用户的行为,尽可能显得自然。

- 暂停:在执行下一个模块前延迟一段时间,模拟真实用户的行为。 例如:可能需要等待页面上出现某个按钮,或者等待网站发来的短信验证码。
- 条件:如果指定条件为 True,操作沿绿线继续;如果为 False,则沿红线继续。例如:需要找出发帖很多的 Instagram 页面。为此,在脚本统计出页面上的照片数量后,创建一个“条件”模块,条件为:
NumberPhotos > 5。如果变量“Number of Photos”的值大于 5(例如 6、10、49),脚本沿绿色分支继续;如果小于或等于 5(例如 1、4、5、-20),脚本沿红色分支继续。 - 执行:可以输入任意 JS 代码并执行。
- Foreach 循环:对数组中的每个元素执行(数组只能通过读取文件功能获得)
例如:文件中有 3 个搜索词,任务是为这些数据打开 3 个显示 Google 搜索结果的标签页。在“读取文件”模块中指定按行存放数据的文件:
1
2
3
接下来,在循环中指定“读取文件”模块的输出变量,并为单个元素创建一个变量,例如
element。在“新标签页”操作中指定 URLhttps://google.com?q=${element},其中?q=${element}就是对循环中单个元素变量的使用。退出循环后,有两条路径通向同一个操作,之后可以继续任何需要的操作。需要注意的是,在“读取文件”模块中按行处理时,会从文本末尾开始处理。

- While 循环:每次迭代前检查条件。满足条件时走红线,不满足时走绿线。 例如:养号时需要打开 4 个独立但相同的标签页,并在其中查找随机数据,例如姓名。完成后会退出循环,继续执行后续操作。
- For 循环:每次迭代前检查条件,按需要的次数执行,例如连续 5 次。也就是说,需要在循环中设置从 1 到 5 的值,然后循环执行下载文件操作,并为后续操作指定循环的出口。
Foreach、While 和 For 循环是什么、有什么区别,可以看这里。
- 添加注释:在工作区中创建注释框,可以在需要的模块旁写注释。
- 停止:执行完所有指定操作后关闭浏览器配置文件。停止需要连接红线。
介绍完所有操作后,下面演示如何搭建第一个小脚本,并同时在多个配置文件上运行。
我的第一个脚本 😎
以比特币水龙头 https://freebitco.in/ 的点击脚本为例。目前脚本只需每小时点击一次 Roll 按钮,账户就会收到聪(satoshi)。这里不需要通过验证码,按钮每小时只能点击一次。
需要强调的是,这只是一个示例,本文中的信息可以用来创建任何其他脚本。

- 首先添加“打开 URL”操作。点击它,从浏览器地址栏复制完整地址 (https://freebitco.in/)。

- 把第一个模块连接到绿色的“开始”圆圈。
- 这时就已经可以运行脚本了:浏览器加载后,会自动打开你输入的地址。

可以在“空白”浏览器上运行脚本,也可以从列表中选择你的某个配置文件。
- 未登录状态下打开网站,几秒钟后会出现一个弹出窗口,在窗口外任意位置点击鼠标左键即可关闭。我们添加一个“暂停”操作,然后添加一个“点击”操作。
合适的暂停时长可以手动计算,关键是记住数值以毫秒为单位(本例取 5000)。
要进行点击,可以选择“左键”和“坐标”选项。这里可以输入任意坐标(Y150 X150),关键是点击位置要在弹出窗口之外,让窗口消失。
可以用第三方扩展自行确定坐标。

- 弹出窗口消失后,需要登录。如果已经在该网站登录,可以直接进行下一步。
需要点击邮箱输入框,输入登录名/邮箱,然后点击密码输入框,输入密码,再点击登录按钮。一共 5 个操作模块。
要让机器人点击某个元素,需要指定是哪一个。元素不一定总在同一位置,所以坐标不一定管用。我们使用“xpath”选择器,可以提前从浏览器控制台中复制。
把元素的 Xpath 复制到构建器的“点击”操作中,机器人就会准确点击该字段。

字段被激活后,需要输入邮箱。选择“输入文本”操作,在其中填入邮箱。
密码输入框也同样处理。然后选取 Sign Up 按钮的 Xpath,进入主页。
另外,元素的 Xpath 不一定固定不变,也可以改用 CSS 或“文本”选项(指定包含所输入文本的元素)。这些也都可以在浏览器控制台中查看。
- 现在来到主页。只需点击 Roll 按钮,就会执行需要的操作。再次选择“点击”模块,复制 Roll 按钮的 Xpath,与上一个操作连接起来,就完成了:按钮会被点击。

用这种方式可以自动化更多操作,类似的场景还有很多。