if token: print(f"\nSuccessfully obtained token: {token}") # Use token in your form submission # Example: form_data['fc-token'] = token else: print("Failed to solve captcha") For testing purposes, you can implement a manual solution:
def _solve_anticaptcha(self, public_key: str, page_url: str, subdomain: str = None, data_blob: str = None) -> Optional[str]: """Solve using Anti-Captcha service""" task = { "type": "FunCaptchaTask", "websiteURL": page_url, "websitePublicKey": public_key, "proxyType": "http" } if subdomain: task["funcaptchaApiJSSubdomain"] = subdomain payload = { "clientKey": self.api_key, "task": task } # Create task response = requests.post(self.submit_url, json=payload) result = response.json() if result.get('errorId') != 0: print(f"Error creating task: {result}") return None task_id = result.get('taskId') print(f"Task created, ID: {task_id}") # Poll for result for _ in range(60): time.sleep(3) poll_payload = { "clientKey": self.api_key, "taskId": task_id } poll_response = requests.post(self.result_url, json=poll_payload) poll_result = poll_response.json() if poll_result.get('status') == 'ready': token = poll_result.get('solution', {}).get('token') print(f"Captcha solved! Token: {token[:50]}...") return token elif poll_result.get('status') == 'processing': continue else: print(f"Error: {poll_result}") return None return None if name == " main ": # Initialize solver with your API key # Sign up at https://2captcha.com or https://anti-captcha.com API_KEY = "YOUR_API_KEY_HERE" funcaptcha solver python
def _solve_2captcha(self, public_key: str, page_url: str, subdomain: str = None, data_blob: str = None) -> Optional[str]: """Solve using 2Captcha service""" payload = { 'key': self.api_key, 'method': 'funcaptcha', 'publickey': public_key, 'pageurl': page_url, 'json': 1 } if subdomain: payload['surl'] = subdomain if data_blob: payload['data[blob]'] = data_blob # Submit captcha for solving response = requests.post(self.submit_url, data=payload) result = response.json() if result.get('status') != 1: print(f"Error submitting captcha: {result}") return None captcha_id = result.get('request') print(f"Captcha submitted, ID: {captcha_id}") # Poll for result for _ in range(60): # Timeout after 60 attempts time.sleep(5) # Wait 5 seconds between checks poll_payload = { 'key': self.api_key, 'action': 'get', 'id': captcha_id, 'json': 1 } poll_response = requests.get(self.result_url, params=poll_payload) poll_result = poll_response.json() if poll_result.get('status') == 1: token = poll_result.get('request') print(f"Captcha solved! Token: {token[:50]}...") return token elif poll_result.get('request') == 'CAPCHA_NOT_READY': continue else: print(f"Error: {poll_result}") return None print("Timeout waiting for captcha solution") return None subdomain: str = None
solver = FuncaptchaSolver(API_KEY, service="2captcha") data_blob: str = None) ->
Args: api_key: Your API key from the solving service service: '2captcha' or 'anticaptcha' """ self.api_key = api_key self.service = service if service == "2captcha": self.submit_url = "https://2captcha.com/in.php" self.result_url = "https://2captcha.com/res.php" else: self.submit_url = "https://api.anti-captcha.com/createTask" self.result_url = "https://api.anti-captcha.com/getTaskResult"