爬蟲突破驗證碼技術 - 2Captcha

来源:https://www.cnblogs.com/xfuture/archive/2023/07/14/17552576.html
-Advertisement-
Play Games

在互聯網世界中,驗證碼作為一種防止機器人訪問的工具,是爬蟲最常遇到的阻礙。驗證碼的類型眾多,從簡單的數字、字母驗證碼,到複雜的圖像識別驗證碼,再到更為高級的互動式驗證碼,每一種都有其獨特的識別方法和應對策略。在這篇文章中,我們將一一介紹各種驗證碼的工作原理和使用[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服務可以有效幫助爬蟲繞過驗證碼限制,開發集成簡單,推薦使用。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 推薦使用壓縮軟體和殺毒軟體 7 - zip 使用火絨 # 一、基本數據類型與變數(上) ### 2.1 註釋 優點: 1. 代碼說明 沒註釋的代碼 有註釋的代碼 1. 不讓解釋器執行註釋的那句話 ### 2.2 單行註釋 單行註釋快捷鍵:ctrl + ? ### 2.3多行註釋 """""" (三個 ...
  • 先上java代碼: 先上java代碼: import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.*; import java.util.Sc ...
  • # 一、簡介 ## 1.前置知識 ● Java17 ● Spring、SpringMVC、MyBatis ● Maven、IDEA ## 2.環境要求 | 環境&工具 | 版本(or later) | | : : | : : | | SpringBoot | 3.1.x | | IDEA | 202 ...
  • # 遞歸相關知識2 ## 多路遞歸--斐波那契額數列 ```java import java.util.Arrays; //遞歸求斐波那契第n項 public class feibonaqie { public static int fibonacci(int n){ int []cache=new ...
  • Docker 可以運行隔離的容器,包括應用程式和其依賴項,與主機操作系統分離。預設情況下,容器是臨時的,這意味著容器中存儲的任何數據在終止後都將丟失。為瞭解決這個問題併在容器生命周期內保留數據,Docker 提供了各種數據持久化方法。 - **Docker 捲** - **綁定掛載** - **Do ...
  • # Scala基礎篇(持續更新中...) ## 數據類型 下表中列出的數據類型都是對象,可以直接對它們調用方法。 | 數據類型 | 描述 | | | | | Byte | 8位有符號補碼整數。數值區間為 -128 到 127 | | Short | 16位有符號補碼整數。數值區間為 -32768 到 ...
  • ## Socket編程(網路通信) #### 伺服器端Demo(ServreSocket) ​ 創建服務端時,如果不提供IP地址,則預設為本地連接(127.0.0.1),但是一定需要手動配置監聽埠! ```java public static void main(String[] args) { ...
  • #include <iostream> #include <Windows.h> #include <WinSock2.h> std::string GetLastErrorMessage() { DWORD errorCode = WSAGetLastError(); LPSTR errorMes ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...