在互聯網世界中,驗證碼作為一種防止機器人訪問的工具,是爬蟲最常遇到的阻礙。驗證碼的類型眾多,從簡單的數字、字母驗證碼,到複雜的圖像識別驗證碼,再到更為高級的互動式驗證碼,每一種都有其獨特的識別方法和應對策略。在這篇文章中,我們將一一介紹各種驗證碼的工作原理和使用[2Captcha](https://... ...
在互聯網世界中,驗證碼作為一種防止機器人訪問的工具,是爬蟲最常遇到的阻礙。驗證碼的類型眾多,從簡單的數字、字母驗證碼,到複雜的圖像識別驗證碼,再到更為高級的互動式驗證碼,每一種都有其獨特的識別方法和應對策略。在這篇文章中,我們將一一介紹各種驗證碼的工作原理和使用2Captcha進行破解的策略。
驗證碼簡介
驗證碼(CAPTCHA),全稱為"Completely Automated Public Turing test to tell Computers and Humans Apart",是一種區分用戶是電腦還是人的公共全自動程式。最初,驗證碼主要是一些混雜字母和數字的圖片,但隨著技術的發展,出現了更多種類的驗證碼,例如reCAPTCHA、GeeTest拼圖驗證碼、hCaptcha、KeyCaptcha等。
1. Normal CAPTCHA
Normal CAPTCHA是一種常見的驗證碼類型,它包含字母和數字的圖片進行扭曲和變形。
2. 清晰文字問題的驗證碼
清晰文字問題的驗證碼主要是對問題的理解和答案的回答,比如“What is the capital of China?”,回答應該是“Beijing”。
3. 旋轉物體的驗證碼
這種驗證碼要求用戶旋轉一個3D物體到正確的方向。
4. reCAPTCHA V2
reCAPTCHA V2是Google開發的驗證碼系統,要求用戶選擇一組與給定主題相關的圖像。
5. GeeTest拼圖驗證碼
GeeTest驗證碼是一種常見的滑動拼圖驗證碼,用戶需要將一個不完整的圖像拼湊完整
6. hCaptcha
hCaptcha是一種驗證人類的驗證碼,要求用戶選擇與給定主題相關的答案。
7. KeyCaptcha
KeyCaptcha是一種互動式驗證碼,需要用戶進行一些操作,比如拖動一個物體到指定位置。
8. Capy拼圖驗證碼
Capy是另一種拼圖驗證碼,它將一個圖像切分成多個小塊,需要用戶通過拖動小塊拼湊成完整的圖像。
9. Grid法驗證碼
Grid法驗證碼是一種基於網格的圖像識別驗證碼,要求用戶識別網格中的特定對象或圖案。
10. Canvas驗證碼
Canvas驗證碼是一種在HTML5 canvas元素中繪製的驗證碼,它可以是文本,也可以是圖像。
11. ClickCaptcha
ClickCaptcha會返回驗證碼圖片的點坐標,用戶需要根據這些坐標點擊正確的位置。
2Captcha 自動驗證碼識別介紹
https://cn.2captcha.com/
2Captcha是一個自動驗證碼識別服務商,支持上述所有的驗證碼類型,識別效果目前最好。 (https://cn.2captcha.com/)
2Captcha服務介紹:
2Captcha支持的所有驗證碼類型
驗證碼類型 | 每 1000 人的費率 | 描述 |
---|---|---|
Normal Captcha, Text Captcha | 0.5−1 | 費率是靈活的,取決於服務的當前負載。 您可以在帳戶設置中查看當前速率和限制最大速率。 |
reCAPTCHA V2 | $2.99 | 該費率適用於通過令牌解決的 Google 的 reCAPTCHA V2。 |
reCAPTCHA V3 | 1.45,2.99 | score <= 0.3, score > 0.3 |
reCAPTCHA Enterprise | $2.99 | 該費率適用於 Google 的 reCAPTCHA Enterprise。 |
Geetest | $2.99 | 該費率適用於 Geetest 驗證碼。 |
Grid Method, Coordinates | $1.20 | 該費率適用於您需要單擊圖像的任何驗證碼。 |
RotateCaptcha | $0.50 | 該費率適用於您需要旋轉圖像的任何驗證碼。 |
Arkose Labs FunCaptcha Token Method | $2.99 | 該費率適用於通過令牌解決的 Arkose Labs FunCaptcha。 |
KeyCaptcha | $2.99 | 該費率適用於 KeyCaptcha。 |
hCaptcha | $2.99 | 該費率適用於 hCaptcha。 |
Capy | $2.99 | 該費率適用於 Capy。 |
TikTok | $2.99 | 該費率適用於 TikTok captcha。 |
官網鏈接
https://cn.2captcha.com/
Python集成
官網提供了眾多的代碼腳本 https://cn.2captcha.com/for-customer
以reCAPTCHA V2示例
pip3 install 2captcha-python
代碼GitHub鏈接:https://github.com/2captcha/2captcha-python
import sys
import os
sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))
from twocaptcha import TwoCaptcha
api_key = os.getenv('APIKEY_2CAPTCHA', 'YOUR_API_KEY')
solver = TwoCaptcha(api_key)
try:
result = solver.recaptcha(
sitekey='6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u',
url='https://2captcha.com/demo/recaptcha-v2')
except Exception as e:
sys.exit(e)
else:
sys.exit('solved: ' + str(result))
總結
驗證碼的難度隨著技術發展越來越高,2Captcha服務可以有效幫助爬蟲繞過驗證碼限制,開發集成簡單,推薦使用。