網頁爬蟲 - Python 爬蟲中如何處理驗證碼?
問題描述
最近想用Python寫個爬蟲去抓取一些東西,但是碰到個問題,就是驗證碼不知道該如何處理。現在驗證碼一般有兩種,一種是簡單的,比如下面這種純字符型的:
另外一種就是出來一些特定字符,需要按順序點擊的:
我看有的人說可以獲取瀏覽器cookies寫到程序里就直接通過驗證了,有的說這個涉及到機器學習方面的東西。由于我個人以前沒接觸過這方面東西,所以不知道從何處入手,想問下要處理這種驗證碼的話,一般該如何處理? 有沒有這方面合適的書推薦下啊……
問題解答
回答1:這個本身用驗證碼技術就是防止爬蟲之類的網絡程序的,我所知道的破解驗證碼就是用人工智能的圖像識別那塊,好像有類似的函數可用,但是準確率都不會太高的
回答2:驗證碼問題,一可以轉到專業服務商提供的API(他們用機器學習或者人工),如優優圖,二是自己寫驗證碼識別程序,提供一個項目供參考:https://github.com/luyishisi/...
回答3:有一種方案是在瀏覽器手動登陸然后把cookies提取出來直接在爬蟲里包在請求里發出去。
回答4:圖片一好處理,驗證碼就是張圖片,通過圖片處理可以獲取驗證碼(ocr技術);圖片二比較麻煩,如果用第一種方法的話,它的數字覆蓋在文字上面了,在獲取圖片內容的時候難度比較大,第二種方法我沒有什么好方法,希望有這方面經驗的同學幫忙解答一下
回答5:驗證碼就是用來反制機器和爬蟲的,如果驗證碼能讓你的自動化爬蟲輕松繞過,那還能叫驗證碼么?樓主還是先搞清楚驗證碼是個怎么機制,再來看看是否真如你想象中能夠輕松繞過.總而言之,除非人家網站的驗證碼實現有漏洞,否則你是無法繞過驗證碼機制的,你只能識別出驗證碼上的文字,比如OCR(Optical Character Recognition)技術就是用來解決這個問題的.OCR是指電子設備(如掃描儀)檢查紙上打印的字符.通過檢測暗/亮的模式確定其形狀,然后用字符識別方法將形狀翻譯成計算機文字的過程.
驗證碼識別基本步驟:1.預處理2.灰度化3.二值化4.去噪5.分割6.識別
總而言之,驗證碼識別門檻高,成本也高,避無可避.比如下圖,驗證碼東倒西歪,還重疊,識別起來有難度.
可以用一個驗證碼服務像是我在用的9eu。
回答7:最省事的方式就是把cookie拿出來寫在代碼里,不過cookie是有時效性的
回答8:應對復雜的驗證碼,比較高效省時的方法應是對接到打碼平臺,交由他們的人工處理。
相關文章:
1. 網頁爬蟲 - python爬蟲翻頁問題,請問各位大神我這段代碼怎樣翻頁,還有價格要登陸后才能看到,應該怎么解決2. python如何不改動文件的情況下修改文件的 修改日期3. 算法 - python 給定一個正整數a和一個包含任意個正整數的 列表 b,求所有<=a 的加法組合4. python - thrift 返回 TSocket read 0 bytes 求助!!!!5. javascript - 微信h5發送圖文信息,部分設備點擊“發送”按鈕時沒反應,問題較難重現,如何能找到可能存在問題的點?6. javascript - 微信小程序里怎么把頁面轉成圖片分享7. python 正則表達式提取8. python - 求一個在def中可以實現調用本def滿足特定條件continue效果的方法(標題說不太清楚,請見題內描述)9. javascript - JS用ajax爬取百度外賣店家信息10. python - Pycharm調試代碼進行列表遍歷時,如何直接賦值指定元素
