作為一只Python爬蟲虱而,如何破解滑動驗證碼筏餐?

做爬蟲總會遇到各種各樣的反爬限制,反爬的第一道防線往往在登錄就出現(xiàn)了牡拇,為了限制爬蟲自動登錄魁瞪,各家使出了渾身解數(shù)穆律,所謂道高一尺魔高一丈。

今天分享個如何簡單處理滑動圖片的驗證碼的案例导俘。

image.png

類似這種拖動滑塊移動到圖片中缺口位置與之重合的登錄驗證在很多網(wǎng)站或者APP都比較常見峦耘,因為它對真實用戶體驗友好,容易識別旅薄。同時也能攔截掉大部分初級爬蟲辅髓。

作為一只python爬蟲,如何正確地自動完成這個驗證過程呢少梁?

先來分析下洛口,核心問題其實是要怎么樣找到目標(biāo)缺口的位置,一旦知道了位置凯沪,我們就可以借用selenium等工具完成拖動的操作第焰。

我們可以借用opencv來解決這個問題,主要步驟:

image.png

opencv 是什么妨马?

OpenCV(Open Source Computer Vision Library)是開放源代碼計算機(jī)視覺庫挺举,主要算法涉及圖像處理、計算機(jī)視覺和機(jī)器學(xué)習(xí)相關(guān)方法烘跺,可用于開發(fā)實時的圖像處理湘纵、計算機(jī)視覺以及模式識別程序。

直接安裝

pip install opencv-python

首先將圖片進(jìn)行高斯模糊處理滤淳,高斯模糊的主要作用是減少圖像的噪聲梧喷,用于預(yù)處理階段。

import cv2 as cv
image = cv.imread(image_path)
blurred = cv.GaussianBlur(image, (5, 5), 0)
cv.imshow("blurred", blurred)

處理后的效果

image.png

接著用Canny邊緣檢測到得到一個包含“窄邊界”的二值圖像娇钱。所謂二值圖像就是黑白圖伤柄,只有黑色和白色绊困。

canny = cv.Canny(blurred, 200, 400)
cv.imshow("canny", canny)
image.png

輪廓檢測

contours, hierarchy = cv.findContours(canny, cv.RETR_CCOMP, cv.CHAIN_APPROX_SIMPLE)
for i, contour in enumerate(contours):  # 所有輪廓
    x, y, w, h = cv.boundingRect(contour)  # 外接矩形
    cv.rectangle(image, (x, y), (x + w, y + h), (0, 0, 255), 2)
cv.imshow('image', image)

找出所有的輪廓文搂,并用紅色線框?qū)⑵淅L制標(biāo)識出來了,看出來大大小小有幾十個輪廓

image.png

剩下的問題就好辦了秤朗,我們只需要對輪廓的面積或者周長范圍做限制煤蹭,就能過濾出目標(biāo)輪廓的位置, 前提是我們對目標(biāo)位置的輪廓大小是預(yù)先確定的取视。

for i, contour in enumerate(contours):  # 所有輪廓
    if 6000 < cv.contourArea(contour) <= 8000 and 300 < cv.arcLength(contour, True) < 500:
        x, y, w, h = cv.boundingRect(contour)  # 外接矩形
        print(x, y, w, h)
        cv.rectangle(image, (x, y), (x + w, y + h), (0, 0, 255), 2)
        cv.imshow('image', image)
        # 找目標(biāo)缺口硝皂,第一個可能是滑塊
        if x <= 200:
            continue
        return x + int(w / 2), 675

輪廓的面積大概是6000到8000之間,周長在300到500之間作谭, 最后用外接矩形獲取該輪廓圖的坐標(biāo)位置和寬高大小稽物。

image.png

如上就找到了目標(biāo)位置,剩下的工作就是將滑塊移動到指定位置即可

作者:Python之禪
原文鏈接:https://mp.weixin.qq.com/s/n2LtrXvf5U-vFoCCLHrjGg

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末折欠,一起剝皮案震驚了整個濱河市贝或,隨后出現(xiàn)的幾起案子吼过,更是在濱河造成了極大的恐慌,老刑警劉巖咪奖,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件盗忱,死亡現(xiàn)場離奇詭異,居然都是意外死亡羊赵,警方通過查閱死者的電腦和手機(jī)趟佃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來昧捷,“玉大人闲昭,你說我怎么就攤上這事×仙恚” “怎么了汤纸?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長芹血。 經(jīng)常有香客問我贮泞,道長,這世上最難降的妖魔是什么幔烛? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任啃擦,我火速辦了婚禮,結(jié)果婚禮上饿悬,老公的妹妹穿的比我還像新娘令蛉。我一直安慰自己,他們只是感情好狡恬,可當(dāng)我...
    茶點故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布珠叔。 她就那樣靜靜地躺著,像睡著了一般弟劲。 火紅的嫁衣襯著肌膚如雪祷安。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天兔乞,我揣著相機(jī)與錄音汇鞭,去河邊找鬼。 笑死庸追,一個胖子當(dāng)著我的面吹牛霍骄,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播淡溯,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼读整,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了咱娶?” 一聲冷哼從身側(cè)響起米间,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤煎楣,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后车伞,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體择懂,經(jīng)...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年另玖,在試婚紗的時候發(fā)現(xiàn)自己被綠了困曙。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片滴某。...
    茶點故事閱讀 38,664評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡揭芍,死狀恐怖箫章,靈堂內(nèi)的尸體忽然破棺而出苟耻,到底是詐尸還是另有隱情,我是刑警寧澤破镰,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布盼砍,位于F島的核電站碾盟,受9級特大地震影響妆丘,放射性物質(zhì)發(fā)生泄漏锄俄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一勺拣、第九天 我趴在偏房一處隱蔽的房頂上張望奶赠。 院中可真熱鬧,春花似錦药有、人聲如沸毅戈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽苇经。三九已至,卻和暖如春宦言,著一層夾襖步出監(jiān)牢的瞬間扇单,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工蜡励, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留令花,地道東北人阻桅。 一個月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓凉倚,卻偏偏與公主長得像,于是被迫代替她去往敵國和親嫂沉。 傳聞我的和親對象是個殘疾皇子稽寒,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,554評論 2 349

推薦閱讀更多精彩內(nèi)容

  • 前言 滑塊驗證碼破解是一直都是一個棘手的問題,畢竟多數(shù)網(wǎng)站都會采用滑塊驗證碼要搞現(xiàn)在的滑塊驗證碼繞不開圖像處理趟章,圖...
    木語沉心閱讀 2,129評論 1 3
  • 極驗驗證碼:需要手動拼合滑塊來完成的驗證杏糙,相對圖形驗證碼識別難度上升了幾個等級慎王。下面用程序識別并通過極驗驗證碼的驗...
    生信師姐閱讀 7,258評論 0 5
  • 視頻演示: (因我的筆記本配置不好,視頻中程序運行較慢宏侍,請各位諒解赖淤,觀看中保持耐心,謝謝) 應(yīng)用于云爬蟲平臺...
    be3fa8cf0d11閱讀 7,530評論 0 1
  • 很多小伙伴們反饋,在web自動化的過程中绷耍,經(jīng)常會被登錄的驗證碼給卡住吐限,不知道如何去通過驗證碼的驗證。 今天專門給大...
    測試汪大牛閱讀 4,020評論 1 2
  • 在前面一篇博客褂始,介紹了 Selenium 的基本用法和爬蟲開發(fā)過程中經(jīng)常使用的一些小技巧诸典,利用這些寫出一個瀏覽器爬...
    FifiZhuang閱讀 10,974評論 4 81