网页爬虫 - Python 爬虫中如何处理验证码?
怪我咯
怪我咯 2017-04-18 10:33:47
0
8
485

最近想用Python写个爬虫去抓取一些东西,但是碰到个问题,就是验证码不知道该如何处理。
现在验证码一般有两种,一种是简单的,比如下面这种纯字符型的:

另外一种就是出来一些特定字符,需要按顺序点击的:

我看有的人说可以获取浏览器cookies写到程序里就直接通过验证了,有的说这个涉及到机器学习方面的东西。由于我个人以前没接触过这方面东西,所以不知道从何处入手,想问下要处理这种验证码的话,一般该如何处理? 有没有这方面合适的书推荐下啊……

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回覆(8)
迷茫

這個本身用驗證碼技術就是防止爬蟲之類的網路程式的,我所知道的破解驗證碼就是用人工智慧的圖像識別那塊,好像有類似的函數可用,但是準確率都不會太高的

黄舟

驗證碼問題,一可以轉到專業服務商提供的API(他們用機器學習或人工),如優優圖,二是自己寫驗證碼識別程序,提供一個項目供參考:https://github.com /luyishisi/...

迷茫

有一個方案是在瀏覽器手動登陸然後把cookies提取出來直接在爬蟲裡包在請求裡發出去。

PHPzhong

圖片一好處理,驗證碼就是張圖片,透過圖片處理可以取得驗證碼(ocr技術);
圖片二比較麻煩,如果用第一種方法的話,它的數字覆蓋在文字上面了,在獲取圖片內容的時候難度比較大,第二種方法我沒有什麼好方法,希望有這方面經驗的同學幫忙解答一下

Peter_Zhu

驗證碼就是用來反制機器和爬蟲的,如果驗證碼能讓你的自動化爬蟲輕鬆繞過,那還能叫驗證碼麼?樓主還是先搞清楚驗證碼是個怎麼機制,再來看看是否真如你想像中能夠輕鬆繞過.總而言之,除非人家網站的驗證碼實現有漏洞,否則你是無法繞過驗證碼機制的,你只能識別出驗證碼上的文字,比如OCR(Optical Character Recognition)技術就是用來解決這個問題的.OCR是指電子設備(如掃描儀)檢查紙上打印的字符.通過檢測暗/亮的模式確定其形狀,然後用字符識別方法將形狀翻譯成計算機文字的過程.

驗證碼辨識基本步驟:
1.預處理
2.灰階化
3.二值化
4.去噪
5.分割
6.辨識

總而言之,驗證碼識別門檻高,成本也高,避無可避.
比如下圖,驗證碼東倒西歪,還重疊,識別起來有難度.

左手右手慢动作

可以用一個驗證碼服務像是我在用的9eu。

刘奇

最省事的方式就是把cookie拿出來寫在程式碼裡,不過cookie是有時效性的

大家讲道理

應對複雜的驗證碼,比較高效率省時的方法應是對接到打碼平台,交由他們的人工處理。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!