小豬短租的登錄以及其他出現滑動的地方都是阿里的滑動
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