【RPA典型应用-注册及登录发布信息自动化项目】
前言
客户的需求为批量注册账户、自动登录并发布信息方面的项目。
- 通过批量注册海外指定网站的账户(比如youtube,binance)。
- 读取指定的账户密码文件,登录到指定网站,将指定的视频文件及标题和信息内容,发布到网站上,手工工作量大,并且容易被屏蔽。
自动化流程可以采用selenium chrome或类似的技术框架,主要涉及反机器检测难点:
1、 基于IP的检测,同IP 注册大量账户很容易被检测,海外代理IP要访问要先翻墙或直接用国外主机, 速度优化是个难点。
2、 风控检测,如果同浏览器指纹被关联到多账户,则容易被封掉。
3、 短信验证码,接码平台对接, 如sms-activate 拿到手机号后再接收短信验证码。
4、 机器人检测,比如通过九宫格、滑动拼图、图标或文字点选等, 需要识别图中内容,并产生模拟真人的交互轨迹。
九宫格或语义空间需要调用YesCaptcha或打码平台(费用高),也可以采用yolox自己训练
解决方案:
一、 自动化整体示意图及说明
二、 Selenium 框架简介
三、 chrome浏览器内核反识别修改编译
四、 Yolox机器识别简介
五、 项目案例流程介绍
一、 自动化整体业务示意图:
- RPA 程序启动
- 下载业务脚本,RPA机器人打开浏览器,导航到目标网站。
- 机器检测流程中,RPA程序和网站交互,获取需要的信息调用三方打码平台或ddddocr (数字、英文图形验证码)、yolox(文字、图标点选、语义空间等),完成交互验证。
- 短信验证码流程,RPA程序对接三方接码平台,获取手机号后,RPA机器人在浏览器输入,RPA程序获取到短信验证码后在浏览器中输入,完成短信验证过程。
- 上传视频及发布信息,RPA程序从本地文件预先读取后,RPA机器人在浏览器完成上传视频及发布信息的操作。

二、 Selenium 框架简介:
浏览器自动化指通过编程控制 Web 浏览器,以执行用户常规操作,如:
1) 网页导航(访问特定网址)
2) 数据抓取(提取网页中的信息)
3)表单填写(自动登录、输入数据)
4)点击按钮(模拟用户交互)
5) 鼠标拖拽(模拟用户交互)
Selenium是一个强大的工具,可以用于自动化浏览器操作。通过它,我们可以在浏览器中自动执行鼠标点击、键盘输入等操作。下面,我将介绍如何使用Selenium来实现自动注册。
在进行自动注册时,首先需要模拟浏览器行为。这可以通过Python的Selenium库实现。Selenium可以控制浏览器,执行诸如打开网页、输入信息、点击按钮等操作。
- 安装Selenium
要使用Selenium,首先需要安装它。可以通过pip命令来安装:
pip install selenium - 下载浏览器驱动
Selenium需要浏览器驱动才能控制浏览器。根据所使用的浏览器,下载相应的驱动程序(如ChromeDriver、GeckoDriver等),并将其路径添加到系统环境变量中。 - 编写脚本
编写Python脚本(如Python、Java、Ruby等,都用于在Selenium中编写测试脚本),使用Selenium控制浏览器进行自动注册。以下是一个简单示例,展示如何使用Selenium打开网页并输入信息:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
# 设置 ChromeDriver 路径
chrome_driver_path = "c:/chrome/chromedriver.exe"
# 配置 Chrome 选项
options = Options()
options.binary_location = "C:/chrome/116/chrome.exe"
# 创建 Service 对象
service = Service(executable_path=chrome_driver_path)
# 创建 WebDriver 实例
driver = webdriver.Chrome(service=service, options=options)
# 访问网页
index = "https://www.browserscan.net/zh/bot-detection"
driver.get(index)
三、 chrome浏览器内核反识别修改编译
由于海外网站大多具备设备指纹采集,Selenium 有些明显的机器人信息及设备指纹容易被识别,针对指纹检测网站的检测原理,做出修改重新编译,简单介绍涉及的几方面
1. 绕过cdp检测

2. 生成随机canvas指纹

3. 生成随机webGL指纹

四、 Yolox机器识别简介
部分网站采用机器检测防爬虫,如九宫格、语义空等,在调用次数大的情况下自己训练模型可以节约成本,以下针对典型的语义空间图形,采用YOLOX进行训练


1、 图片标注,利用标注工具都采集下来的图片进行标注,几百张进行训练会有一定效果,训练再补充标注

2、 标注校验,对标注好的标签,将同标签切割为独立文件,放到同目录进行检查

3、 yolox训练
将标注好的图片目录,转换为voc 格式,分为训练数据和验证数据集,在实际训练中对该项目进行优化,大幅减少了处理时间

4、 部署模型
将训练好的模型及分类标签部署到YOLOX_SERVER ,在识别出基本的标签后,还需要进行逻辑处理,
比如 “请点击与最大圆柱体颜色相同的物体”,需要计算面积及提取颜色,再计算出答案。
提供API 接口识别服务,客户端提交文件返回识别出的标签及位置信息
{"confirm_data":[],"data":"547,109","width":680,"title":"侧D","detections":[{"正C":[335,210,471,363]},{"正D":[294,121,398,237]},{"正D":[144,58,241,164]},{"圆柱体":[88,234,176,348]},{"圆柱体":[379,94,469,210]},{"侧D":[504,55,591,163]},{"圆柱体":[504,136,591,247]},{"正D":[203,223,271,298]},{"圆柱体":[115,152,204,263]},{"正e":[577,247,626,306]}],"height":460}

五、 项目案例流程介绍
项目1:youtube注册账户自动化流程
实现批量注册账户,将注册后的账户及密码保存到文件
操作过程:
-
输入名称:

-
选择出生日期及性别

-
选择 Get a Gmail address instead

-
选择创建gmail邮箱并输入账号

-
输入密码及确认密码

-
机器人检测

通过对接yescaptcha 接口,有2种方式可以通过检测
-
YesCaptcha TOKEN 方式
易于集成:使用TOKEN方式进行验证通常只需要在前端页面上嵌入一段JavaScript代码,无需后端复杂处理,简化了集成流程。

价格高
-
获取九宫格位置
实现复杂:需要在前端实现九宫格的布局和位置的获取逻辑,相对于TOKEN方式来说,开发成本和复杂度更高。
价格低一些,但存在点击多个九宫格的情况
- 接码平台对接
https://sms-activate.io/
选择不同的国家价格差别很大,通过率高的国家可能价格会更贵, 在自动化脚本中需要分析选择合适的国家

a) 调用初始化key
sa = SMSActivateAPI(“d5b0f93b38d971c0518fbddef94beAd4”)
b) 获取手机号码信息
number = sa.getNumber(service=‘go’, operator=operator_code, country=country_num, verification=“false”)
phone_number=str(number[‘phone’])
activation_id=number[‘activation_id’]
c) 在界面输入电话号码后,后台轮询短信验证码
activeActivations = sa.getActiveActivations()
for active in activeActivations[‘activeActivations’]:
smsCode=active.get(‘smsCode’)
smsText=active.get(‘smsText’)
d) 在界面输入短信验证码
input sms code
self.wait_send_keys(driver.find_element(‘name’,‘code’),smsCode[0]) - 完成自动注册,将随机生成的账户、密码保存到本地文件
