網(wǎng)頁爬蟲 - Python 爬蟲中如何處理驗(yàn)證碼?
問題描述
最近想用Python寫個(gè)爬蟲去抓取一些東西,但是碰到個(gè)問題,就是驗(yàn)證碼不知道該如何處理。現(xiàn)在驗(yàn)證碼一般有兩種,一種是簡(jiǎn)單的,比如下面這種純字符型的:
另外一種就是出來一些特定字符,需要按順序點(diǎn)擊的:
我看有的人說可以獲取瀏覽器cookies寫到程序里就直接通過驗(yàn)證了,有的說這個(gè)涉及到機(jī)器學(xué)習(xí)方面的東西。由于我個(gè)人以前沒接觸過這方面東西,所以不知道從何處入手,想問下要處理這種驗(yàn)證碼的話,一般該如何處理? 有沒有這方面合適的書推薦下啊……
問題解答
回答1:這個(gè)本身用驗(yàn)證碼技術(shù)就是防止爬蟲之類的網(wǎng)絡(luò)程序的,我所知道的破解驗(yàn)證碼就是用人工智能的圖像識(shí)別那塊,好像有類似的函數(shù)可用,但是準(zhǔn)確率都不會(huì)太高的
回答2:驗(yàn)證碼問題,一可以轉(zhuǎn)到專業(yè)服務(wù)商提供的API(他們用機(jī)器學(xué)習(xí)或者人工),如優(yōu)優(yōu)圖,二是自己寫驗(yàn)證碼識(shí)別程序,提供一個(gè)項(xiàng)目供參考:https://github.com/luyishisi/...
回答3:有一種方案是在瀏覽器手動(dòng)登陸然后把cookies提取出來直接在爬蟲里包在請(qǐng)求里發(fā)出去。
回答4:圖片一好處理,驗(yàn)證碼就是張圖片,通過圖片處理可以獲取驗(yàn)證碼(ocr技術(shù));圖片二比較麻煩,如果用第一種方法的話,它的數(shù)字覆蓋在文字上面了,在獲取圖片內(nèi)容的時(shí)候難度比較大,第二種方法我沒有什么好方法,希望有這方面經(jīng)驗(yàn)的同學(xué)幫忙解答一下
回答5:驗(yàn)證碼就是用來反制機(jī)器和爬蟲的,如果驗(yàn)證碼能讓你的自動(dòng)化爬蟲輕松繞過,那還能叫驗(yàn)證碼么?樓主還是先搞清楚驗(yàn)證碼是個(gè)怎么機(jī)制,再來看看是否真如你想象中能夠輕松繞過.總而言之,除非人家網(wǎng)站的驗(yàn)證碼實(shí)現(xiàn)有漏洞,否則你是無法繞過驗(yàn)證碼機(jī)制的,你只能識(shí)別出驗(yàn)證碼上的文字,比如OCR(Optical Character Recognition)技術(shù)就是用來解決這個(gè)問題的.OCR是指電子設(shè)備(如掃描儀)檢查紙上打印的字符.通過檢測(cè)暗/亮的模式確定其形狀,然后用字符識(shí)別方法將形狀翻譯成計(jì)算機(jī)文字的過程.
驗(yàn)證碼識(shí)別基本步驟:1.預(yù)處理2.灰度化3.二值化4.去噪5.分割6.識(shí)別
總而言之,驗(yàn)證碼識(shí)別門檻高,成本也高,避無可避.比如下圖,驗(yàn)證碼東倒西歪,還重疊,識(shí)別起來有難度.

可以用一個(gè)驗(yàn)證碼服務(wù)像是我在用的9eu。
回答7:最省事的方式就是把cookie拿出來寫在代碼里,不過cookie是有時(shí)效性的
回答8:應(yīng)對(duì)復(fù)雜的驗(yàn)證碼,比較高效省時(shí)的方法應(yīng)是對(duì)接到打碼平臺(tái),交由他們的人工處理。
相關(guān)文章:
1. javascript - sublime快鍵鍵問題2. javascript - immutable配合react提升性能?3. css - 寫頁面遇到個(gè)布局問題,求大佬們幫解答,在線等,急!~4. javascript - nodejs關(guān)于進(jìn)程間發(fā)送句柄的一點(diǎn)疑問5. Apache 已經(jīng)把網(wǎng)站根目錄的改為allow from all了,但是服務(wù)器還是不能訪問?6. 實(shí)現(xiàn)bing搜索工具urlAPI提交7. 配置Apache時(shí),添加對(duì)PHP的支持時(shí)語法錯(cuò)誤8. vue.js - Vue 如何像Angular.js watch 一樣監(jiān)聽數(shù)據(jù)變化9. javascript - 移動(dòng)端上不能實(shí)現(xiàn)拖拽布局嗎?10. phpstudy8.1支持win11系統(tǒng)嗎?

網(wǎng)公網(wǎng)安備