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