场景
自动抢单,模拟人工抢单流程
问题
- 登录验证
session验证、token令牌和谷歌验证都还好说,但是图片验证码比较难,图片验证码带有阻断线,程序识别度低,验证码正确率底下,暂时没有解决方法。
- 请求延迟
模拟动作在页面资源加载之前走完了,暂时只能等待页面资源加后走。
- 模拟
不是太有意义。
代码
浏览器驱动和包百度自行下载
.
# -*- coding: utf-8 -*-
import pyotp
import time
from msedge.selenium_tools import Edge, EdgeOptions
def get_token():
# 获取密钥
secret_key = 'RDORJABKA2HJQOKQZKLZ456SIVIU6U3E'
# 创建一个OTP对象
otp = pyotp.TOTP(secret_key)
token = otp.now()
print(token)
return token
def init():
options = EdgeOptions()
options.use_chromium = True
return arg_init(options)
def arg_init(options):
# 浏览器的位置
options.binary_location = r"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"
# 相应的浏览器的驱动位置
driver = Edge(options=options, executable_path=r"E:\迅雷下载\edgedriver_win64\msedgedriver.exe")
# 窗口大小
driver.set_window_size(480, 800)
return driver
def app(browsers):
browsers.get("脚本页面")
browsers.refresh()
while True:
browsers.execute_script(
r"document.getElementsByClassName('el-button el-button--primary el-button--mini')[0].click()")
browsers.execute_script(
r"document.getElementsByClassName('el-button el-button--default el-button--small el-button--primary ')[0].click()")
if __name__ == '__main__':
browser = init()
browser.get("登录页面")
print("谷歌验证码为:")
print(get_token())
print("请在30秒之内登录网站")
time.sleep(30)
html = browser.page_source
print("程序正在启动")
app(browser)
print("ok")