使用 Selenium + win32api 破解阿里的滑動驗證碼


小豬短租的登錄以及其他出現滑動的地方都是阿里的滑動

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM