采集淘宝数据时,请求一频繁,就会出现风控跳滑块,这里使用AutoJS自动化控制插件操控手机屏幕自动过滑块。
一、架构
整套方案一共分为三个部分,分别为生成滑块APP、自动过滑块AutoJS脚本、爬虫。
生成滑块APP:
- 负责生成淘宝滑块;
- 监听滑块相关请求,滑块验证成功后上报滑块cookie;
自动过滑块AutoJS脚本:
- 控制安卓手机界面,完成打开APP、点击、自动滑动滑块、自动切换飞行模式等一系列操作;
爬虫:
- 接收APP侧上报的滑块cookie;
- 采集所需数据;
二、细节
2.1 滑块生成逻辑
步骤:
- 开发一个APP,放置一个按钮,点击后,请求淘宝会跳滑块的数据接口;
- 解析返回的数据,从中取出滑块的url地址;
- 通过webview加载滑块页面;
PS:每次加载滑块页面前,记得清webview相关的缓存、cookie。
2.2 获取滑块cookie参数
步骤:
- webView设置WebViewClient,重写WebViewClient的onPageFinished方法;
- 每次页面结束后,读取存储的cookie,淘宝滑块cookie名为x5sec;
PS:
- 滑块x5sec参数的失效时间为30分钟;
- 不同数据接口,获取x5sec可能无法通用;
- 滑块验证通过后,页面会有302重定向过程,onPageFinished可能会多次调用,要做好处理;
2.3 AutoJS自动过滑块
- 淘宝会检测过滑块时的轨迹,我采用的是四阶贝塞尔曲线,模拟真人滑动;
- 淘宝会检测过滑块时的IP地址,IP最好用质量高的IP,比如4G网络;
- 多次滑动后,最好开关飞行模式,切换IP;
三、效果展示
正文完