日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
python抓取網(wǎng)頁(yè)時(shí)處理驗(yàn)證碼的方法-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買(mǎi)多久送多久,劃算不套路!

創(chuàng)新互聯(lián)專(zhuān)注于企業(yè)成都全網(wǎng)營(yíng)銷(xiāo)、網(wǎng)站重做改版、商丘網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5建站、商城系統(tǒng)網(wǎng)站開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性?xún)r(jià)比高,為商丘等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。

這篇文章主要介紹python抓取網(wǎng)頁(yè)時(shí)處理驗(yàn)證碼的方法,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

python抓取網(wǎng)頁(yè)時(shí)是如何處理驗(yàn)證碼的?下面給大家介紹幾種方法:

1、輸入式驗(yàn)證碼

這種驗(yàn)證碼主要是通過(guò)用戶(hù)輸入圖片中的字母、數(shù)字、漢字等進(jìn)行驗(yàn)證。如下圖:

python抓取網(wǎng)頁(yè)時(shí)處理驗(yàn)證碼的方法

解決思路:這種是最簡(jiǎn)單的一種,只要識(shí)別出里面的內(nèi)容,然后填入到輸入框中即可。這種識(shí)別技術(shù)叫OCR,這里我們推薦使用Python的第三方庫(kù),tesserocr。對(duì)于沒(méi)有什么背影影響的驗(yàn)證碼如圖2,直接通過(guò)這個(gè)庫(kù)來(lái)識(shí)別就可以。但是對(duì)于有嘈雜的背景的驗(yàn)證碼這種,直接識(shí)別識(shí)別率會(huì)很低,遇到這種我們就得需要先處理一下圖片,先對(duì)圖片進(jìn)行灰度化,然后再進(jìn)行二值化,再去識(shí)別,這樣識(shí)別率會(huì)大大提高。

2、滑動(dòng)式驗(yàn)證碼

這種是將備選碎片直線滑動(dòng)到正確的位置,如下圖:

python抓取網(wǎng)頁(yè)時(shí)處理驗(yàn)證碼的方法

解決思路:對(duì)于這種驗(yàn)證碼就比較復(fù)雜一點(diǎn),但也是有相應(yīng)的辦法。我們直接想到的就是模擬人去拖動(dòng)驗(yàn)證碼的行為,點(diǎn)擊按鈕,然后看到了缺口的位置,最后把拼圖拖到缺口位置處完成驗(yàn)證。

第一步:點(diǎn)擊按鈕。然后我們發(fā)現(xiàn),在你沒(méi)有點(diǎn)擊按鈕的時(shí)候那個(gè)缺口和拼圖是沒(méi)有出現(xiàn)的,點(diǎn)擊后才出現(xiàn),這為我們找到缺口的位置提供了靈感。

第二步:拖到缺口位置。

我們知道拼圖應(yīng)該拖到缺口處,但是這個(gè)距離如果用數(shù)值來(lái)表示?

通過(guò)我們第一步觀察到的現(xiàn)象,我們可以找到缺口的位置。這里我們可以比較兩張圖的像素,設(shè)置一個(gè)基準(zhǔn)值,如果某個(gè)位置的差值超過(guò)了基準(zhǔn)值,那我們就找到了這兩張圖片不一樣的位置,當(dāng)然我們是從那塊拼圖的右側(cè)開(kāi)始并且從左到右,找到第一個(gè)不一樣的位置時(shí)就結(jié)束,這是的位置應(yīng)該是缺口的left,所以我們使用selenium拖到這個(gè)位置即可。

這里還有個(gè)疑問(wèn)就是如何能自動(dòng)的保存這兩張圖?

這里我們可以先找到這個(gè)標(biāo)簽,然后獲取它的location和size,然后 top,bottom,left,right = location['y'] ,location['y']+size['height']+ location['x'] + size['width']  ,然后截圖,最后摳圖填入這四個(gè)位置就行。

具體的使用可以查看selenium文檔,點(diǎn)擊按鈕前摳張圖,點(diǎn)擊后再摳張圖。最后拖動(dòng)的時(shí)候要需要模擬人的行為,先加速然后減速。因?yàn)檫@種驗(yàn)證碼有行為特征檢測(cè),人是不可能做到一直勻速的,否則它就判定為是機(jī)器在拖動(dòng),這樣就無(wú)法通過(guò)驗(yàn)證了。

3、點(diǎn)擊式的圖文驗(yàn)證和圖標(biāo)選擇

圖文驗(yàn)證:通過(guò)文字提醒用戶(hù)點(diǎn)擊圖中相同字的位置進(jìn)行驗(yàn)證。

圖標(biāo)選擇: 給出一組圖片,按要求點(diǎn)擊其中一張或者多張。借用萬(wàn)物識(shí)別的難度阻擋機(jī)器。

這兩種原理相似,只不過(guò)是一個(gè)是給出文字,點(diǎn)擊圖片中的文字,一個(gè)是給出圖片,點(diǎn)出內(nèi)容相同的圖片。

這兩種沒(méi)有特別好的方法,只能借助第三方識(shí)別接口來(lái)識(shí)別出相同的內(nèi)容,推薦一個(gè)超級(jí)鷹,把驗(yàn)證碼發(fā)過(guò)去,會(huì)返回相應(yīng)的點(diǎn)擊坐標(biāo)。

然后再使用selenium模擬點(diǎn)擊即可。具體怎么獲取圖片和上面方法一樣。

4、宮格驗(yàn)證碼

 python抓取網(wǎng)頁(yè)時(shí)處理驗(yàn)證碼的方法

這種就很棘手,每一次出現(xiàn)的都不一樣,但是也會(huì)出現(xiàn)一樣的。而且拖動(dòng)順序都不一樣。

但是我們發(fā)現(xiàn)不一樣的驗(yàn)證碼個(gè)數(shù)是有限的,這里采用模版匹配的方法。我覺(jué)得就好像暴力枚舉,把所有出現(xiàn)的驗(yàn)證碼保存下來(lái),然后挑出不一樣的驗(yàn)證碼,按照拖動(dòng)順序命名,我們從左到右上下到下,設(shè)為1,2,3,4。上圖的滑動(dòng)順序?yàn)?,3,2,1,所以我們命名4_3_2_1.png,這里得手動(dòng)搞。當(dāng)驗(yàn)證碼出現(xiàn)的時(shí)候,用我們保存的圖片一一枚舉,與出現(xiàn)這種比較像素,方法見(jiàn)上面。如果匹配上了,拖動(dòng)順序就為4,3,2,1。然后使用selenium模擬即可。

以上是python抓取網(wǎng)頁(yè)時(shí)處理驗(yàn)證碼的方法的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道!


分享文章:python抓取網(wǎng)頁(yè)時(shí)處理驗(yàn)證碼的方法-創(chuàng)新互聯(lián)
標(biāo)題來(lái)源:http://www.dlmjj.cn/article/ccshph.html