/1 前言/
嘿,各位小夥伴晚上好呀,今天要帶來點什麼乾貨呢,就從我的實際開發中來給大家帶來一個案例吧,如何自動登錄嗶哩嗶哩。
接到老大通知,讓我自動寫一個自動登錄嗶哩嗶哩的腳本,我當然是二話不說直接開懟,咱們的準則是啥,生死看淡,不服就幹,幹就完了。然而,現實總是被無情打臉,但是不管怎樣,終究算是幹過它了,下面我們來一一講解,如何自動登錄嗶哩嗶哩!
/2 準備工作/
chromedriver:瀏覽器驅動,可以理解爲一個沒有界面的chrome瀏覽器。
selenium:用於模擬人對瀏覽器進行點擊、輸出、拖拽等操作,就相當於是個人在使用瀏覽器,也常常用來應付反爬蟲措施。
/3 具體步驟/
嗶哩嗶哩登錄URL:https://passport.bilibili.com/login
1、點擊登錄如下,自動登錄blbl最難的一點就是,拖動滑塊,對準缺口,正是這一個問題,讓我掉了好幾根頭髮,跟上我的腳步,能少踩一個一個坑是一個坑。
2. 可能看到這,稍微會點技術的小夥伴都知道,其實我們根本要解決的問題,就是缺口獲取缺口的位置,但是要怎麼獲取這個缺口的位置呢?
3. 這尼瑪,canvas是個啥?其實當時我和你們想法一樣,其實呢,這個canvas是個畫布,可不是圖片,這咋辦,這不是圖片怎麼辦呢?
再說,我怎麼知道哪個是帶缺口圖的canvas,經過多次測試,終於算是弄清楚了哪個是背景圖,哪個是滑塊,我來給大家標註一下。
4. So,問題又來了,我怎麼獲取這裏面的圖片呢?不談了,直接上圖!!!
5. 我們先在遊覽器前端控制檯,通過js代碼,選中帶缺口的標籤,因爲是類選中,所以需要取0下標,通過 toDataURL("image/png") 方法,將canvas將裏面的圖片轉爲base64位圖片,轉成base64位圖片有啥用呢,來,我們賦值這麼這麼長的一段base64地址,複製到遊覽器中。
看到了沒?我們夢寐已久帶缺口的圖片已經呈現出來了。
6. 下一步怎麼辦呢?當時我的想法是,如法炮製,獲取滑塊的的圖片,通過opencv模板對比,獲取缺口位置。但是事實證明,我又被打臉,我們來看一下滑塊圖片張啥樣。
7. 是不是看着沒什麼問題,我們來保存本地試一下看看。
8. 看出來了沒?其實除了滑塊以外,其他位置爲透明區域,如果有透明區域,是不能通過opencv 模板對比的。這咋辦?如果在用opencv處理圖像,就是個累活了。
9. 本着能懶就懶的原則,直接上第三方平臺吧!本文使用的第三方平臺:聯衆:https://www.jsdati.com/
這個平臺還是比較貼心的,還有qq客服,有問題我們還可以問qq客服,暖心
10. 這個平臺圖像類型1318爲滑塊驗證碼,只需要把帶有缺口的圖片上傳到此網站就好。具體怎麼操作呢?說了這麼多,我們也該上代碼了,詳情地址上傳到github這裏了:https://github.com/cassieeric/python_crawler/tree/master/bilibili_autoLogin,覺得還不錯,記得給個star噢!
各位小夥伴自行去聯衆註冊哈,價格還挺香,1元100點,滑動驗證碼一個2點。
/4 示例效果/
最後小編給大家錄製了一個視頻,gif格式的,給大家呈現的效果如下所示:
示例效果.gif
/5 總結/
今天主要介紹了一種自動登錄嗶哩嗶哩的破解方法,大家可以跟着代碼進行實際操作一遍,有問題也可以隨時留言噢,後面還會分享其他的第三方服務破解方式,敬請期待吧!