日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python网页登录验证码不显示_进网页需要验证码?不好意思,Python从来不惧各种验证码!...

發布時間:2024/7/23 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python网页登录验证码不显示_进网页需要验证码?不好意思,Python从来不惧各种验证码!... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天

要來說說滑動驗證碼了

大家應該都很熟悉

點擊滑塊然后移動到圖片缺口進行驗證

現在越來越多的網站使用這樣的驗證方式

為的是增加驗證碼識別的難度

那么,對于這種驗證碼應該怎么破呢

接下來就是見證神奇的時刻

打開 b 站的登錄頁面

可以看到登錄的時候需要進行滑塊驗證

按下 F12,進入 Network,看下我們將滑塊移到缺口松開之后做了什么提交

可以看到是一個 GET 請求

但是這請求鏈接也太特么長了吧

就是比小編短了一點點

我們來看看請求的參數是怎么樣的

哇靠,gt ?challenge?w?

這些都是什么鬼參數,還加密了,完全下不了手啊

那么

本篇完

再見

peace

你是不是迷戀我??

好吧

你居然滑到這里來了

說明你還是有點愛我的

我是那種遇到一點困難就放棄的人嗎

顯然不是

那么接下來才是真的學習 python 的正確姿勢

既然以請求的方式不好弄,我們從它們的源代碼入手,看看有什么突破口。

回到 b 站的登錄頁,按下 F12,進入 Element

然后點擊滑塊出現了圖片,定位一下

發現有兩個 a 標簽

一個 class 是 gt_bg gt_show

一個 class 是 gt_fullbg gt_show

和小帥b想的一樣

這個驗證碼應該是有兩張圖片

一張是完全的背景圖片

一張是缺口的圖片

那把這兩張圖片下載下來對比一下不就行了

打開 a 標簽一看

哇靠

一張圖片被切割成很多小塊

原來這張圖片是拼出來的

我們看看原始圖片是怎么樣的

什么亂七八糟的

再仔細看下源代碼

原來是在同一張圖片通過偏移量合成了一張完整的圖片

background-position: -277px -58px;

厲害厲害

小編我看了一下缺口的圖片也是如此

到這里

我們的第一個思路就是

下載這兩張原始圖片

然后通過偏移量合成兩張真正的圖片

背景圖

↓變身

缺口圖

↓變身

那么怎么做呢?

因為我們還要模擬滑動滑塊

所以呢

我們要用到 selenium

打開b站的登錄頁

然后等到那個滑塊顯示出來

接下來我們就獲取頁面的源碼

driver.page_source

然后使用 bs 獲取兩張原始背景圖片的 url

拿到了圖片地址之后

將圖片下載下來

ok

我們已經把兩張原始圖片下載下來了

那么接下來就是要合成圖片了

我們要根據圖片的位置來合成

也就是源碼中的 background-position

獲取每一個小圖片的位置

我們可以通過字典的形式來表示這些位置

然后將數據放到列表中

那么

現在我們已經有了原始圖片

還知道了每個位置應該顯示原始圖片的什么部分

接下來我們就寫一個方法

用來合成圖片

那么問題又來了

怎么合成啊

我們再看看一開始分析的圖片

這里圖片被分割成的每一個小圖片的尺寸是

10 * 58

所以我們也要將我們剛剛下載的原始圖片切割成相應的尺寸大小

而且

這張圖片是由上半部分的小圖片和下半部分的小圖片合成的

所以我們定義兩個 list 來裝這些小圖片

然后將原始的圖片切割好放進去

至此

我們這兩個 list 就分別放好了各個切割的圖片了

那么接下來就創建一張空白的圖片

然后將小圖片一張一張(間距為10)的粘貼到空白圖片里

這樣我們就可以得到一張合成好的圖片了

我真是個天才

那么到現在

我們可以得到網頁上顯示的那兩張圖片了

一張完全的圖片

一張帶缺口的圖片

接下來我們就要通過對比這兩張圖

看看我們要滑動的距離是多遠

可以通過圖片的 RGB 來計算

我們設定一個閾值

如果 r、g、b 大于這個閾值

我們就返回距離

現在

我們知道了關鍵的滑動距離了

激動人心的時刻到了

我們使用 selenium

拿到滑塊的元素

然后根據這個距離拖動到缺口位置不就好了么

馬上打開 selenium 的文檔

看到了這個函數

它可以使用左鍵點擊元素

然后拖動到指定距離

最后釋放鼠標左鍵

挖槽

正合我意

趕緊試一下

運行一下試試看吧

哇哦你妹哦~

妖怪吃了拼圖了

看來直接拖拽是不行的

容易遇到妖怪

畢竟這太快了

就算加藤鷹也沒那么快吧

我試著拖完滑塊讓它睡一下再釋放

發現拼圖還是特么的被妖怪吃了

后來發現原來別人也遇到了這樣的問題

然后又發現了

有個叫勻速直線運動的東西

什么 加速度

什么 v = v0 + at

什么 s = ?at2

這不是高中的知識點么

瞬間想起高中的時候在最角落的課桌

此刻往右上方抬起頭

45 度角

讓我的眼淚劃出一條美麗的弧線

什么鬼

回到正題

我們可以使用它來構造一個運動路徑

該加速時加速

該減速的時候減速

這樣的話就更像人類在滑動滑塊了

這次

我們使用這個軌跡來滑動

好了好了

我們再來運行一下吧

哈哈哈

cool

成功識別了哇

我不管

當然了

成功率不是 100%

可以多調戲它幾次

ok

以上就是識別滑動驗證碼的具體過程了

對于其它大部分的滑動驗證碼

也是可以使用這招搞定的

由于篇幅有限

源代碼私信我

就可以獲取啦

那,這次本篇就真的完啦

總結

以上是生活随笔為你收集整理的python网页登录验证码不显示_进网页需要验证码?不好意思,Python从来不惧各种验证码!...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。