久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術(shù)文章
文章詳情頁

利用Python+Selenium破解春秋航空網(wǎng)滑塊驗(yàn)證碼的實(shí)戰(zhàn)過程

瀏覽:3日期:2022-08-06 14:58:56
目錄前言開發(fā)工具環(huán)境搭建實(shí)戰(zhàn)記錄一.驗(yàn)證碼簡介二.破解滑塊驗(yàn)證碼2.1計算滑塊到缺口的距離2.2將滑塊拖到缺口位置前言

記錄一次利用Python+Selenium破解滑塊驗(yàn)證碼的實(shí)戰(zhàn)過程。讓我們愉快地開始吧~

利用Python+Selenium破解春秋航空網(wǎng)滑塊驗(yàn)證碼的實(shí)戰(zhàn)過程

開發(fā)工具

Python版本: 3.6.4

相關(guān)模塊:

pillow模塊;

selenium模塊;

numpy模塊;

以及一些Python自帶的模塊。

其他:

chromedriver

環(huán)境搭建

安裝Python并添加到環(huán)境變量,pip安裝需要的相關(guān)模塊即可。

實(shí)戰(zhàn)記錄

本文將記錄一次春秋航空的會員注冊頁面所使用的滑塊驗(yàn)證碼破譯過程,地址為:

https://account.ch.com/NonRegistrations-Regist

一. 驗(yàn)證碼簡介

驗(yàn)證碼,即CAPTCHA,全自動區(qū)分計算機(jī)和人類的公開圖靈測試,換而言之,驗(yàn)證碼是一種用于區(qū)分人類與計算機(jī)的測試,只有通過了CAPTCHA,當(dāng)前用戶才被認(rèn)為是人類。

二.破解滑塊驗(yàn)證碼

滑塊驗(yàn)證碼,即用戶使用鼠標(biāo)將滑塊從某個位置拖動到另一個位置,服務(wù)器通過用戶拖動滑塊的軌跡來判斷當(dāng)前用戶是否為人類。本文將嘗試破解的是一種拼圖式的滑塊驗(yàn)證碼:

利用Python+Selenium破解春秋航空網(wǎng)滑塊驗(yàn)證碼的實(shí)戰(zhàn)過程

首先,我手動完成了一次滑塊驗(yàn)證碼的驗(yàn)證,想看看需要向服務(wù)器端發(fā)送什么請求才算是通過了驗(yàn)證,隨便點(diǎn)開了一個,發(fā)現(xiàn)請求需要的參數(shù)是這樣的:

利用Python+Selenium破解春秋航空網(wǎng)滑塊驗(yàn)證碼的實(shí)戰(zhàn)過程

搞清楚每個參數(shù)當(dāng)然是可以的,簡單想了一下,感覺應(yīng)該是這樣的:

首先,利用圖像處理技術(shù)計算滑塊到缺口的距離。然后,利用機(jī)器以與人類行為相似的方式將滑塊拖到缺口位置,完成驗(yàn)證。

2.1 計算滑塊到缺口的距離

首先,我們利用Selenium進(jìn)入滑塊驗(yàn)證碼界面:

利用Python+Selenium破解春秋航空網(wǎng)滑塊驗(yàn)證碼的實(shí)戰(zhàn)過程

也就是這個界面:

利用Python+Selenium破解春秋航空網(wǎng)滑塊驗(yàn)證碼的實(shí)戰(zhàn)過程

那么滑塊到缺口的距離該如何計算呢?

之前看到很多人是這么算的:

出現(xiàn)滑塊驗(yàn)證碼界面時對屏幕進(jìn)行截圖(此時背景圖是完整的),然后模擬點(diǎn)擊滑動圓球,使滑塊和缺口出現(xiàn)(此時背景圖是有缺口的),此時再次截圖,通過對比兩次截圖即可輕松地找到缺口位置。

但是,此方案的前提是在點(diǎn)擊滑動圓球之后才出現(xiàn)滑塊和缺口,點(diǎn)擊之前是完整的背景圖。這個方案在不久前還是可行的,但是魔高一尺道高一丈,數(shù)天前滑塊驗(yàn)證碼版本升級了!!!滑塊驗(yàn)證碼直接顯示滑塊和缺口了!!!也就是不給你看原圖了。

既然準(zhǔn)備用機(jī)器學(xué)習(xí),算法先不考慮,總得先有訓(xùn)練數(shù)據(jù)吧,于是我手動刷新了幾次,想研究一下驗(yàn)證碼圖片該如何獲取,實(shí)在不行就手動保存?zhèn)€幾百張。可一刷新,發(fā)現(xiàn)了一件了不起的事情,這網(wǎng)站滑塊驗(yàn)證碼的背景圖只有四張!

根本不需要爬驗(yàn)證碼,手工標(biāo)注,然后訓(xùn)練了。或許有人會問,為什么呢?

因?yàn)榫退膹埍尘皥D啊!!!你完全可以這樣:對當(dāng)前的滑塊驗(yàn)證碼界面進(jìn)行截圖,與對應(yīng)的完整背景圖進(jìn)行對比,找到缺口位置,即可計算出滑塊到缺口的距離了(滑塊初始位置的橫坐標(biāo)是固定的)。

上述方案有如下兩個問題:

(1)如何獲取完整的背景圖?

答案:當(dāng)你完成滑塊驗(yàn)證碼的驗(yàn)證時,還是會出現(xiàn)對應(yīng)的完整背景圖的,通過截屏軟件截下圖就好了。

結(jié)果如下:

利用Python+Selenium破解春秋航空網(wǎng)滑塊驗(yàn)證碼的實(shí)戰(zhàn)過程

(2)怎么找到當(dāng)前滑塊驗(yàn)證碼對應(yīng)的完整背景圖?

答案:因?yàn)橹挥兴膹垐D,沒必要用一些高大上的圖像匹配算法,看了下四張圖左上角頂點(diǎn)處的像素值,其中R值分別為:255,217,227,100,顯然,通過對比背景圖左上角頂點(diǎn)處的像素值即可找到當(dāng)前滑塊驗(yàn)證碼對應(yīng)的完整背景圖了,代碼實(shí)現(xiàn)如下:

利用Python+Selenium破解春秋航空網(wǎng)滑塊驗(yàn)證碼的實(shí)戰(zhàn)過程

注意,因?yàn)榻貓D是這樣子的:

利用Python+Selenium破解春秋航空網(wǎng)滑塊驗(yàn)證碼的實(shí)戰(zhàn)過程

所以驗(yàn)證碼背景圖左上角頂點(diǎn)處的坐標(biāo)會隨著電腦和截屏方式的改變而改變(具體而言,Selenium和我電腦上的截屏軟件截出來的圖,驗(yàn)證碼背景圖的位置坐標(biāo)是不一樣的,需要通過畫圖軟件確定具體位置)。

所以如果你無法用我的代碼完成滑塊驗(yàn)證碼破解的話,請自行修改(787, 282)和(787, 293)為適合你自己電腦實(shí)際情況的坐標(biāo)值。

接下來,我們就可以計算滑塊到缺口的距離了!

先截取當(dāng)前滑塊驗(yàn)證碼界面,代碼實(shí)現(xiàn)如下:

利用Python+Selenium破解春秋航空網(wǎng)滑塊驗(yàn)證碼的實(shí)戰(zhàn)過程

這里我們把滑塊先移動到最右端再截圖,否則滑塊將影響當(dāng)前驗(yàn)證碼界面與對應(yīng)的完整背景圖之間的像素對比(即第一次找到的像素差異較大點(diǎn)在滑塊上而不是在期望的缺口上)。

然后通過與對應(yīng)的完整背景圖進(jìn)行像素值對比,找到缺口位置,即可計算出滑塊到缺口的距離了(因?yàn)榛瑝K初始位置的橫坐標(biāo)是固定的):

利用Python+Selenium破解春秋航空網(wǎng)滑塊驗(yàn)證碼的實(shí)戰(zhàn)過程

2.2 將滑塊拖到缺口位置

接下來,我們需要利用機(jī)器以與人類行為相似的方式將滑塊拖到缺口位置,完成驗(yàn)證。

一般而言,人手工拖動滑塊的軌跡是這樣的:

利用Python+Selenium破解春秋航空網(wǎng)滑塊驗(yàn)證碼的實(shí)戰(zhàn)過程

即:先快速向右拖動,快到缺口時,再減速慢調(diào)。那么這樣的軌跡該如何生成呢?

我想了兩種方案:

方案一是根據(jù)物理學(xué)中的加速度減速度來模擬拖動滑塊的軌跡,代碼實(shí)現(xiàn)如下:

利用Python+Selenium破解春秋航空網(wǎng)滑塊驗(yàn)證碼的實(shí)戰(zhàn)過程

方案二是直接構(gòu)造一些函數(shù)來模擬拖動滑塊的軌跡,函數(shù)代碼實(shí)現(xiàn)如下:

利用Python+Selenium破解春秋航空網(wǎng)滑塊驗(yàn)證碼的實(shí)戰(zhàn)過程

最后,使用Selenium按照設(shè)定的軌跡將滑塊移動到缺口處即可:

利用Python+Selenium破解春秋航空網(wǎng)滑塊驗(yàn)證碼的實(shí)戰(zhàn)過程

文章到這里就結(jié)束了,感謝你的觀看,Python24個小游戲系列,下篇文章分享Python+Selenium破譯B站滑塊驗(yàn)證碼

到此這篇關(guān)于利用Python+Selenium破解春秋航空網(wǎng)滑塊驗(yàn)證碼的實(shí)戰(zhàn)過程的文章就介紹到這了,更多相關(guān)Python Selenium滑塊驗(yàn)證碼內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 欧美操穴 | 欧产日产国产一区 | 欧美久久久久久久 | 欧美性一级 | 成人av免费在线观看 | 欧美久久影视 | 精品无人乱码一区二区三区的优势 | 亚洲 中文 欧美 日韩 在线观看 | 国产在线成人 | 国产成人精品免费视频大全最热 | 美女网站视频免费黄 | 久久成人精品 | 日韩精品1区 | 欧美一级小视频 | 久久午夜影院 | 久久成人综合网 | 久久夫妻网 | 激情久久av一区av二区av三区 | 在线亚洲一区 | 大象视频成人在线观看 | 中文字幕在线观看第一页 | 久久天堂电影 | 久久久国产精品 | 中文字幕亚洲欧美日韩在线不卡 | 北条麻妃一区二区三区在线观看 | 欧美成人a∨高清免费观看 在线视频成人 | 手机在线观看av | 91精品国产91综合久久蜜臀 | 午夜精选视频 | 日韩欧美在线视频 | 欧美一区在线视频 | 91精品国产欧美一区二区成人 | 9191在线| av网站在线免费观看 | 一区二区精品 | 欧美一区二区在线播放 | 成人中文网| 国产精品成人在线观看 | 日本免费网站 | 黑人av | 成人精品视频99在线观看免费 |