
CaptchaHarvester瀏覽器自動化原理Chromium代理配置與多域名攔截技術【免費下載鏈接】CaptchaHarvesterSolve captchas yourself without having to pay for services like 2captcha for use in automated projects.項目地址: https://gitcode.com/gh_mirrors/ca/CaptchaHarvesterCaptchaHarvester是一款強大的開源工具它通過瀏覽器自動化技術讓用戶能夠自行解決驗證碼無需依賴2captcha等付費服務非常適合用于自動化項目中。本文將深入解析其核心的Chromium代理配置與多域名攔截技術原理。 核心工作機制概述CaptchaHarvester的核心功能實現主要依賴于兩個關鍵技術點Chromium瀏覽器的代理配置和多域名攔截系統。這兩個技術的結合使得工具能夠高效地捕獲和處理來自不同網站的驗證碼。瀏覽器自動化架構項目通過harvester/browser.py模塊實現瀏覽器自動化功能。該模塊提供了launch()函數能夠自動檢測并啟動系統中安裝的Chromium瀏覽器如Chrome并進行必要的配置以實現代理和攔截功能。# 瀏覽器啟動核心代碼 def launch(domain: Union[str, List[str]], server_address: Tuple[str, int], browser: Union[BrowserEnum, str] BrowserEnum.CHROME, restart: bool False, width: int 400, height: int 580, browser_args: List[str] [], extensions: List[str] None, verbose: bool False) - threading.Thread: # 實現瀏覽器啟動和配置邏輯 Chromium代理配置技術代理服務器搭建CaptchaHarvester通過harvester/server/__init__.py模塊創建了一個本地代理服務器使用ThreadingHTTPServer實現并發處理能力。這個代理服務器是實現驗證碼攔截的基礎。# 代理服務器初始化代碼 self.httpd ThreadingHTTPServer( (host, port), ProxyHTTPRequestHandlerWrapper(self.domain_cache, do_not_track))瀏覽器代理參數配置雖然在代碼中沒有直接看到--proxy-server參數但通過分析browser.py中的瀏覽器啟動參數可以發現工具通過定制瀏覽器啟動參數來實現代理配置將瀏覽器流量引導至本地代理服務器進行處理。# 瀏覽器啟動參數配置 browser_command.extend(( --no-default-browser-check, --no-check-default-browser, --disable-background-networking, --disable-background-timer-throttling, --disable-client-side-phishing-detection, f--window-size{width},{height}, ))? 多域名攔截技術域名緩存與管理CaptchaHarvester使用domain_cache字典來管理需要攔截的域名信息每個域名對應一個MITMRecord對象存儲該域名的驗證碼配置和令牌隊列。# 域名緩存初始化 self.domain_cache: Dict[str, MITMRecord] {} # 添加域名到緩存 ret self.domain_cache[domain] MITMRecord( sitekeysitekey, captcha_kindcaptcha_kind, actionaction, tokensExpiringQueue(expiration300) )攔截邏輯實現ProxyHTTPRequestHandler類實現了核心的請求攔截和處理邏輯。當瀏覽器發送請求時代理服務器會檢查請求的域名是否在domain_cache中如果是則進行驗證碼攔截處理。# 請求處理邏輯 self.domain self.headers.get(host, None) self.config domain_cache.get(self.domain, None) if self.config: # 處理被攔截的域名請求 self._handle_intercepted_request() else: # 正常代理其他請求 self._proxy_request()多域名支持工具支持同時攔截多個域名的驗證碼請求。通過harvester/entry_point.py中的命令行參數-d或--domain可以指定需要攔截的域名也可以通過編程方式添加多個域名。# 命令行參數配置 ap.add_argument(-d, --domain, requiredTrue, helpThe domain of the site which hosts the captcha you want to solve.) 使用流程解析初始化Harvester創建Harvester實例配置代理服務器添加攔截域名通過intercept_recaptcha_v2()、intercept_recaptcha_v3()或intercept_hcaptcha()方法添加需要攔截的域名和驗證碼信息啟動瀏覽器調用launch_browser()方法啟動配置好代理的Chromium瀏覽器解決驗證碼在瀏覽器中手動解決驗證碼獲取令牌通過get_token_queue()方法獲取已解決的驗證碼令牌示例代碼片段# 添加域名攔截 tokens harvester.intercept_recaptcha_v2(domain, sitekey) # 啟動瀏覽器 harvester.launch_browser() # 獲取令牌 token_queue harvester.get_token_queue(domain) 技術優勢與應用場景CaptchaHarvester的瀏覽器自動化技術具有以下優勢無需第三方依賴不需要支付驗證碼服務費用高度自定義可以針對不同類型的驗證碼reCAPTCHA v2、v3、hCaptcha進行定制多域名支持能夠同時處理多個網站的驗證碼需求簡單集成通過example.py可以快速了解如何將工具集成到自己的項目中這項技術非常適合需要處理驗證碼的自動化項目如網絡爬蟲、自動化測試、批量操作工具等場景。 進一步學習資源項目源碼harvester/示例代碼example.py瀏覽器模塊harvester/browser.py服務器模塊harvester/server/init.py通過深入研究這些文件你可以更全面地了解CaptchaHarvester的實現細節并根據自己的需求進行定制和擴展。【免費下載鏈接】CaptchaHarvesterSolve captchas yourself without having to pay for services like 2captcha for use in automated projects.項目地址: https://gitcode.com/gh_mirrors/ca/CaptchaHarvester創作聲明:本文部分內容由AI輔助生成(AIGC),僅供參考