Python奇淫技巧之自動登錄嗶哩嗶哩(解決滑塊驗證)

/1 前言/
嘿,各位小伙伴早上好呀,今天要帶來點什么干貨呢,就從我的實際開發(fā)中來給大家?guī)硪粋€案例吧,如何自動登錄嗶哩嗶哩。
接到老大通知,讓我自動寫一個自動登錄嗶哩嗶哩的腳本,我當然是二話不說直接開懟,咱們的準則是啥,生死看淡,不服就干,干就完了。
然而,現(xiàn)實總是被無情打臉,但是不管怎樣,終究算是干過它了,下面我們來一一講解,如何自動登錄嗶哩嗶哩!
/2?示例效果/
? ? 先給大家看看最終效果圖,后面會講解如何破解滑塊驗證:

/3?準備工作/
chromedriver:瀏覽器驅(qū)動,可以理解為一個沒有界面的chrome瀏覽器。
selenium:用于模擬人對瀏覽器進行點擊、輸出、拖拽等操作,就相當于是個人在使用瀏覽器,也常常用來應(yīng)付反爬蟲措施。
?
/4?具體步驟/
嗶哩嗶哩登錄URL:https://passport.bilibili.com/login
1、點擊登錄如下,自動登錄blbl最難的一點就是,拖動滑塊,對準缺口,正是這一個問題,讓我掉了好幾根頭發(fā),跟上我的腳步,能少踩一個一個坑是一個坑。

2.??可能看到這,稍微會點技術(shù)的小伙伴都知道,其實我們根本要解決的問題,就是缺口獲取缺口的位置,但是要怎么獲取這個缺口的位置呢?

3.? ?這尼瑪,canvas是個啥?其實當時我和你們想法一樣,其實呢,這個canvas是個畫布,可不是圖片,這咋辦,這不是圖片怎么辦呢?
再說,我怎么知道哪個是帶缺口圖的canvas,經(jīng)過多次測試,終于算是弄清楚了哪個是背景圖,哪個是滑塊,我來給大家標注一下。

?
4.?So,問題又來了,我怎么獲取這里面的圖片呢?不談了,直接上圖!!!

5.?我們先在游覽器前端控制臺,通過js代碼,選中帶缺口的標簽,因為是類選中,所以需要取0下標,通過 toDataURL("image/png") 方法,將canvas將里面的圖片轉(zhuǎn)為base64位圖片,轉(zhuǎn)成base64位圖片有啥用呢,來,我們賦值這么這么長的一段base64地址,復制到游覽器中。

看到了沒?我們夢寐已久帶缺口的圖片已經(jīng)呈現(xiàn)出來了。
6.?下一步怎么辦呢?當時我的想法是,如法炮制,獲取滑塊的的圖片,通過opencv模板對比,獲取缺口位置。但是事實證明,我又被打臉,我們來看一下滑塊圖片長啥樣。

7.?是不是看著沒什么問題,我們來保存本地試一下看看。

8.?看出來了沒?其實除了滑塊以外,其他位置為透明區(qū)域,如果有透明區(qū)域,是不能通過opencv 模板對比的。這咋辦?如果在用opencv處理圖像,就是個累活了。
9.?本著能懶就懶的原則,直接上第三方平臺吧!本文使用的第三方平臺:聯(lián)眾:https://www.jsdati.com/
這個平臺還是比較貼心的,還有qq客服,有問題我們還可以問qq客服,暖心

10. 這個平臺圖像類型1318為滑塊驗證碼,只需要把帶有缺口的圖片上傳到此網(wǎng)站就好。具體怎么操作呢?說了這么多,我們也該上代碼了,詳情地址上傳到github這里了:https://github.com/cassieeric/python_crawler/tree/master/bilibili_autoLogin,覺得還不錯,記得給個star噢!

各位小伙伴自行去聯(lián)眾注冊哈,價格還挺香,1元100點,滑動驗證碼一個2點。
/5?總結(jié)/
????今天主要介紹了一種自動登錄嗶哩嗶哩的破解方法,大家可以跟著代碼進行實際操作一遍。
你還期待哪些網(wǎng)站的實踐操作呢,也可以在下方留言哦。
