知识点
- Selenium 处理淘宝滑块
- 抢购流程的基本串联
必备环境
- Python 3.8
- PyCharm 专业版
- 谷歌浏览器 + 谷歌驱动 + selenium 3.141.0
- stealth.min.js
代码
模块导入
import time
from info import PHONE, PASSWORD
from selenium import webdriver
模拟滑动轨迹
滑块这一步,核心就是把位移拆成一段段小步长。轨迹先快后慢,比较接近正常拖动的感觉。
def get_tracks(distance):
# 初速度
v = 5
# 单位时间为 0.2s 来统计轨迹,轨迹即 0.2s 内的位移
t = 0.2
# 位移/轨迹列表,列表内的一个元素代表 0.2s 的位移
tracks = []
# 当前的位移
current = 0
# 到达 mid 值开始减速
mid = distance * 4 / 5
while current < distance:
if current < mid:
# 加速度越小,单位时间的位移越小,模拟的轨迹就越多越详细
a = 8
else:
a = -3
# 初速度
v0 = v
# 0.2 秒时间内的位移
s = v0 * t + 0.5 * a * (t ** 2)
# 当前的位置
current += s
# 添加到轨迹列表
tracks.append(round(s))
# 速度已经达到 v,该速度作为下次的初速度
v = v0 + a * t
return tracks


