小猪短租的登录以及其他出现滑动的地方都是阿里的滑动
2019-10-23 更新:
单独给一个连接 :
`https://bizverify.xiaozhu.com/?slideRedirect=https%3A%2F%2Fwww.xiaozhu.com%2Fxzweb.php%3Fop%3DFangDong_MyRentCalendar%26lodgeUnitId%3D117800367601`
之前的方案,在登录界面是完全可以的,但是在这个界面完全不行,滑动几次失败几次。成功率为0
所以,更新一个解决方案:
参考 :[阿里系纯滑块验证码破解思路](https://blog.csdn.net/weixin_41733260/article/details/93160484)
阿里系滑块验证码以nc_1开头,通过调用XXXnc.js来实现。 给个例子,视觉中国的登陆页面www.vcg.com/login 对于这样的验证码,进行JS破解是比较难得,所以应该通过selenium进行破解。 在破解过程中会遇到被网站识别出来,一般都是send_keys后面再拖动再点击登陆,但是这样大部分不行的,多半是阿里的js识别出来了。 大抵是出现: 浏览器最大化时被识别 执行滑动的action被识别 send_keys后被识别 处理逻辑是: 打开浏览器后,最大化后get(url)再刷新页面。 滑动滑块不能利用webdriver,利用pynput这个模块去做拖动操作,这个库是比较底层的,调用win32。之前使用pyautogui发现不行,估计被封装多次,已经被识别出来了
我只是单纯为了破解滑动,所以直接使用 pynput 完全是可以的。
-------------------------------------------------------------分割线---------------------------------------------------------------------
从118,到119,现在到了120.
刚开始使用 selenium 完全可以滑动成功,自从更新到120之后,我之前写的代码就失效了。
模拟滑动基本完全不会成功。
检查模拟滑动以及在页面滑动的区别,发现生成的参数 n,差距很大
经过测试发现,更新滑动会检测系统级的鼠标事件,而 selenium 是外部程序控制的鼠标事件,所以就会失败
解决办法
- 使用 win32api, 系统级别去控制鼠标移动,只要在滑动的时候,
**鼠标有移动 **
,那么这次滑动一定会成功。所以就是两者相结合解决这个问题。
win32的安装
这个库好像直接使用 pip install pywin32
不会成功
还有一种安装方法就是去官网直接下载exe文件,下载对应版本的文件,直接安装,会自动检测 python 的安装目录,并进行安装
https://sourceforge.net/projects/pywin32/files/pywin32/
不过还没试过完全使用 win32api 进行滑动会产生什么样的结果。
后续在测试。
欢迎关注我的公众号: Python爬虫scrapy