在抓取阿里系页面时,访问频率过多会出现如下所示滑动验证码。发现使用selenium定位到元素拖动不起作用,于是使用暴力法,手动滑动验证码并记录鼠标轨迹。然后重复轨迹即可。
其中需要注意的点
1. 淘宝会检测selenium标识,所以需要更改标识,操作方法如下
(1). vim /path/chromedriver
(2). 输入 /cdc_然后回车
(3). 按a启用编辑
(4). 将$cdc_lasutopfhvcZLmcfl替换为相同位数的字符并保存
2. 在打开网页前设置执行js代码转换模式使navigator.webdriver为undefined
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {"source":"""Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"""})
3. 每次遇到验证码调用鼠标记录脚本去滑动验证码即可
备注:鼠标记录脚本地址https://github.com/j785786058/imitator