def simulate_user_behavior(self) -> Dict: """Generate behavioral data that mimics a human""" return 'user_agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36', 'screen_resolution': '1920x1080', 'timezone': 'America/New_York', 'language': 'en-US', 'platform': 'Win32', 'touch_support': False, 'cookie_enabled': True, 'plugins': ['Chrome PDF Plugin', 'Chrome PDF Viewer', 'Native Client'], 'webgl_vendor': 'Google Inc. (Intel)', 'webgl_renderer': 'ANGLE (Intel, Intel(R) UHD Graphics 620 Direct3D11 vs_5_0 ps_5_0)', 'cpu_core_count': 8, 'ram_gb': 16, 'mouse_movements': self._generate_mouse_trace()
@staticmethod def human_typing(element, text, delay_range=(0.05, 0.25)): """Simulate human typing speed""" import random, time for char in text: element.send_keys(char) time.sleep(random.uniform(*delay_range)) class ProxyManager: """Handle proxy rotation for avoiding detection""" def __init__(self, proxy_list=None): self.proxy_list = proxy_list or [] self.current_proxy = None def get_random_proxy(self): """Select random proxy from list""" if self.proxy_list: import random self.current_proxy = random.choice(self.proxy_list) return self.current_proxy return None python recaptcha v3 solver
def setup_driver(self, use_stealth=True): """Configure Chrome driver with stealth options""" options = webdriver.ChromeOptions() # Anti-detection arguments options.add_argument('--disable-blink-features=AutomationControlled') options.add_argument('--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36') options.add_argument('--start-maximized') # Disable automation flags options.add_experimental_option("excludeSwitches", ["enable-automation"]) options.add_experimental_option('useAutomationExtension', False) self.driver = webdriver.Chrome(options=options) # Execute CDP commands to hide webdriver self.driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", "source": """ Object.defineProperty(navigator, 'webdriver', get: () => undefined ); Object.defineProperty(navigator, 'plugins', get: () => [1, 2, 3, 4, 5] ); """ ) def execute_recaptcha(self): """Execute reCAPTCHA v3 and retrieve token""" self.driver.get(self.page_url) # Wait for page load time.sleep(3) # Simulate human-like behavior self.simulate_human_behavior() # Execute reCAPTCHA JavaScript recaptcha_script = f""" return new Promise((resolve) => grecaptcha.ready(function() grecaptcha.execute('self.site_key', action: 'self.action_name') .then(function(token) resolve(token); ); ); ); """ try: token = self.driver.execute_script(recaptcha_script) return token except Exception as e: print(f"Error executing reCAPTCHA: e") return None def simulate_human_behavior(self): """Simulate human mouse movements and timing""" # Random scrolling scroll_script = """ window.scrollTo( top: Math.random() * 500, behavior: 'smooth' ); """ self.driver.execute_script(scroll_script) # Random wait times time.sleep(random.uniform(0.5, 2.0)) # Random mouse movements (simplified) self.driver.execute_script(""" var event = new MouseEvent('mousemove', view: window, bubbles: true, cancelable: true, clientX: Math.random() * window.innerWidth, clientY: Math.random() * window.innerHeight ); document.dispatchEvent(event); """) def verify_token(self, token, secret_key): """Verify token with Google's API""" verification_url = "https://www.google.com/recaptcha/api/siteverify" payload = 'secret': secret_key, 'response': token response = requests.post(verification_url, data=payload) return response.json() def simulate_user_behavior(self) ->