爬蟲遇到驗證碼必須要知道的解決辦法(乾貨)

 

對於爬取數據而言, 有的網站在登錄時或者採集數據過程中,都會出現驗證碼。對於網絡爬蟲而言,解決驗證碼識別識別是非常重要的一件事。

今天,我們將討論有關驗證碼的5件事,以幫助大家更好的進行網絡數據抓取。

1. 什麼是驗證碼?

2. 驗證碼是如何工作的?

3. 常見的驗證碼有哪些類型?

4. 爲什麼網站要放驗證碼?

5. 如何處理網頁採集中遇到的驗證碼?

 

1.  什麼是驗證碼?

根據維基百科的定義,驗證碼(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart” 的縮寫(全自動區分計算機和人類的圖靈測試),是一種區分用戶是計算機還是人的公共全自動程序。

它通常在互聯網上使用,特別是在網上購買產品或者登錄網站時。

 

2.  驗證碼是如何工作的?

驗證碼技術基於圖靈測試,該測試是用於測試機器是否可以像人一樣思考。驗證碼的目的是提出計算機無法處理的問題或挑戰。它通常顯示扭曲的隨機字符或者數字字符串。

它之所以起作用,是因爲人看着變形的圖片的時候,是可以輕鬆的識別圖片中的字符的,但爬蟲工具則不容易識別。當文字太模糊或者變形太厲害時,即使是最先進的自動化系統(被編程爲掃描頁面上的圖片並識別圖片中的文字),也很難準確識別圖片中的文字。

 

3.  常見的驗證碼有哪些類型?

驗證碼有多種尺寸和類型。最常見的驗證碼類型有:基於文本的驗證碼,基於圖像的驗證碼和基於音頻的驗證碼。

基於文本的驗證碼是由兩個簡單的部分組成:一串隨機生成的字母或數字序列(顯示爲扭曲的圖像)和一個文本框。要通過測試並證明您的人類身份,只需在文本框中輸入您在圖像中看到的字符即可。

 

對於機器人來說,簡單地識別圖片中的字符並不難。爲了增加難度,提供了數學驗證碼,該驗證碼顯示有容易閱讀的數字,並且涉及基本的數學運算問題;同時還有3D驗證碼,該驗證碼顯示具有3D效果的字符。

 

                                           

 

基於圖像的驗證碼:通常爲用戶提供的是物體、動物、人或風景的圖像,而不是失真的文本,以此來區分人和計算機程序。驗證碼要求用戶選擇它們標識的正確圖像,或將滑塊拖動到圖像中以使其完整。

基於音頻的驗證碼:利用從錄音中提取的隨機單詞或數字,將它們組合在一起,甚至給它們添加一些噪音,然後要求用戶輸入在錄音中聽到的單詞或數字。與文本驗證碼和圖片驗證碼相比,聲音驗證碼更難處理,因爲讓數據抓取工具學會傾聽錄音並不容易。

 

4.  爲什麼網站要放驗證碼?

如今,計算機已經普及,跟計算機有關的自動化任務和服務變得司空見慣,因此提高網站的安全級別變得更加重要。爲計算機開發的驗證碼,是在人機交互時,在一些對安全至關重要的情況下,確保與人打交道,例如登錄網站或者在網上付款。

驗證碼還可以阻止試圖自動收集在線數據、試圖自動註冊或使用網站、博客或論壇的垃圾郵件發送者和機器人。它可以保護網站免受垃圾郵件,欺詐性註冊和其他非法行爲的侵擾。

 

5.  如何處理網頁採集中遇到的驗證碼?

一旦採集數據的過程中出現驗證碼,我們的數據採集工作很容易因此中斷。因此,處理驗證碼對於網絡數據抓取非常重要。 處理驗證碼的最好方法就是儘量避免遇到它。採集速度不要太快,短時間內不要過度頻繁的訪問一個網站,而是要表現得更像一個人,模擬人瀏覽網頁的操作行爲。

但是仍然有很多驗證碼是無法避免的,例如登錄頁面上的驗證碼。 在八爪魚採集器中,可以通過設置驗證碼識別步驟,輕鬆地解決驗證碼。同時,八爪魚還支持自動打碼噢!點擊此處查看示例

對於自己編寫爬蟲代碼的人來說,可以將許多驗證碼解算器集成到他的爬蟲系統中。例如,驗證碼識別服務供應商 Death by CAPTCHA和Bypass CAPTCHA 都允許用戶通過調用API服務來進行自動打碼,從而在抓取數據過程中自動解決驗證碼。這些驗證碼解決工具可以處理普通的文本驗證碼,甚至是更高級的驗證碼。

對於網頁數據抓取,驗證碼可能是一個令人頭疼的問題。但是不用擔心,正所謂道高一尺,魔高一丈。 隨着爬蟲工具和驗證碼解算器的興起,驗證碼已成爲可以被破解的對象。藉助這些工具,您可以暢享網頁數據抓取。

 

 

作者:黃伊娜(八爪魚團隊)

校對:Isabel Li(八爪魚團隊)

編輯/翻譯:蔣紅(八爪魚團隊)

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章