def solveTextCaptcha(self, captcha, min_length=None, max_length=None, digits=True, letters=True, characters=True, lower=True, upper=True, language="en", retries=3): captchafile = generateData(16) + ".png" self.savePic(captcha, captchafile) captcha_fp = open(captchafile, 'rb') client = AnticaptchaClient(self.captchaAPI['text']) task = ImageToTextTask(captcha_fp, min_length=min_length, max_length=max_length) job = client.createTask(task) job.join() captchatxt = job.get_captcha_text() t = 0 #if length and length != len(captchatxt): # t = 1 if t != 1: for everyChar in captchatxt: if digits == False and everyChar in string.digits: t = 1 break if language == "en": if letters == False and everyChar in string.ascii_letters: t = 1 break if lower == False and everyChar in string.ascii_lowercase: t = 1 break if upper == False and everyChar in string.ascii_uppercase: t = 1 break if t == 1: return self.solveTextCaptcha(captcha, min_length, max_length, digits, letters, characters, lower, upper, language, retries) return captchatxt
def solve_captha(self): try: api_key = '14723f8265ec2fbffb5ac0be479e4e30' invisible_captcha = True url = 'http://tv.deluxeprime.net:25500/login.php?referrer=/users.php' client = AnticaptchaClient(api_key) task = NoCaptchaTaskProxylessTask( website_url=self.driver.current_url, website_key='6LeaXhITAAAAACiHR6YSn1YKAUrrTZTLtjxuwYx6', is_invisible=invisible_captcha) job = client.createTask(task) job.join() response = job.get_solution_response() print(self.driver.current_url) print(response) key = response command = 'document.getElementById("g-recaptcha-response").innerHTML="' + key + '";' self.driver.execute_script( "document.getElementsByName('captchaResponse')[0].setAttribute('type', 'shown');" ) self.driver.find_element_by_name("captchaResponse").send_keys(key) time.sleep(5) self.driver.execute_script(command) time.sleep(2) except Exception as e: self.driver.quit()
def process(path): captcha_fp = open(path, 'rb') client = AnticaptchaClient(api_key) task = ImageToTextTask(captcha_fp) job = client.createTask(task) job.join() return job.get_captcha_text()
def get_token(self, site_key, proxy=None): # proxy = urlparse("https://"+proxy) # print(proxy.hostname) #proxy = {"proxy_type":proxy.scheme, "proxy_address":proxy.hostname, "proxy_port": proxy.port, "proxy_login": proxy.username, "proxy_password":proxy.password} client = AnticaptchaClient(API_KEY) # task = FunCaptchaTask(SITE_URL,site_key, proxy_type=proxy.scheme, proxy_address=proxy.hostname,proxy_port=proxy.port,proxy_login=proxy.username,proxy_password=proxy.password, user_agent=self.current_user_agent) task = NoCaptchaTaskProxylessTask(website_url=SITE_URL, website_key=site_key) try: #job = client.createTaskSmee(task) job = client.createTask(task) job.join(maximum_time=150) except AnticatpchaException as e: if e.error_code == 'ERROR_ZERO_BALANCE': print(e.error_id, e.error_code, e.error_description) else: if DETAILED_LOGO: self.print_logo("Exc:", e) return None except Exception as e: if DETAILED_LOGO: self.print_logo("Exc:", e) return None except timeout as e: if DETAILED_LOGO: self.print_logo("Exc", e) return None return job.get_solution_response()
class Captcha(Cog): def __init__(self, bot): super().__init__(bot) self.settings = self.bot.settings["module"]["captcha"] self.tcurl = "https://tinychat.com/room/{}" self.captcha_client = AnticaptchaClient(self.settings["key"]) # captcha is a websocket event. async def captcha(self, data: dict): await self.do_captcha(key=data["key"]) async def do_captcha(self, key: str): self.logger.info("attempting to solve captcha.") try: task = NoCaptchaTaskProxylessTask( self.tcurl.format(self.bot.settings["room"]["roomname"], key)) job = self.captcha_client.createTask(task) job.join() payload = { "tc": "captcha", "req": 1, "token": job.get_solution_response() } await self.bot.ws.send(json.dumps(payload)) except AnticatpchaException as e: self.logger.error(e) raise
def process(url): session = requests.Session() client = AnticaptchaClient(api_key) task = ImageToTextTask(session.get(url, stream=True).raw) job = client.createTask(task) job.join() return job.get_captcha_text()
class AntiRecaptcha: def __init__(self, client, site_key, url): self.client = AnticaptchaClient(client) self.task = NoCaptchaTaskProxylessTask(url, site_key) self.notify = None def set_discord_channel(self, webhooks): self.notify = DiscordNotification(webhooks) def getResponse(self): while True: try: self.job = self.client.createTask(self.task) self.job.join() response = self.job.get_solution_response() break except AnticaptchaException as exception: self.notify.sendErrorMessage(str(exception), "AnticaptchaException") self.incorrect() time.sleep(1) self.notify.sendInfoMessage( "Trying again with by creating a new , ") continue return response def incorrect(self): self.job.report_incorrect_recaptcha()
def insert_anticaptcha_solution(driver, group_name): try: driver.find_element_by_id("g-recaptcha-response") api_key = ANTICAPTCHA_ID site_key = SITE_KEY url = 'https://groups.google.com/forum/#!managemembers/{}/invite'.format( group_name) print('Вычисляем антикапчу') client = AnticaptchaClient(api_key) task = NoCaptchaTaskProxylessTask(url, site_key) job = client.createTask(task) job.join() response = job.get_solution_response() print("Received solution", response) time.sleep(2) driver.execute_script( 'document.getElementById("g-recaptcha-response").innerHTML = "%s"' % response) time.sleep(2) driver.execute_script( 'document.getElementById("g-recaptcha-response").innerHTML = "%s"' % response) time.sleep(2) capchaButton = driver.find_element_by_xpath('//div[@aria-disabled]') capchaButton.click() print('Все приглашения отправлены') except: error = driver.find_element_by_class_name('F0XO1GC-Nb-f').text print(error)
def build_jobs(urls): client = AnticaptchaClient(api_key) tasks = [ CustomCaptchaTask(imageUrl=url, assignment="Content moderation", form=form) for url in urls ] return [client.createTask(task) for task in tasks]
def get_captcha(url, site_key): try: # if True: logging.info('Waiting for recaptcha to be solved ...') # api_key = '3d9e48e7ad1d64de378bc1dea4fd472e' api_key = 'c76f49b1ee12f7739faebf78de3534f0' headers = { 'User-Agent': ua.get_user_agent(), 'Content-Type': 'application/json', 'Accept': 'application/json' } api_call = ('{\"clientKey\":\"%s\"}') % (api_key) service_url = 'https://api.anti-captcha.com/getBalance' response = requests.post(service_url, data=api_call, headers=headers, timeout=15).text api_content = json.loads(response) logging.info( ('Anti-captcha balance: %s USD') % (str(api_content['balance']))) client = AnticaptchaClient(api_key) task = NoCaptchaTaskProxylessTask(url, site_key) job = client.createTask(task) job.join() return job.get_solution_response() except Exception as err: logging.info('Failed to resolve captcha: ' + str(err)) raise err
def solve_captcha(): driver.switch_to.frame(driver.find_elements_by_tag_name('iframe')[0]) try: check = WebDriverWait(driver, 10).until( EC.element_to_be_clickable((By.XPATH, '//*[@id="recaptcha-anchor"]/div[1]'))) print("check box image captcha") except (TimeoutException, NoSuchElementException): print("no check box") client = AnticaptchaClient(API_KEY) task = NoCaptchaTaskProxylessTask(page, site_key) job = client.createTask(task) print("Waiting for solution by Anticaptcha workers") job.join() # Receive response captcha_response = job.get_solution_response() print("Received solution", captcha_response) # Inject response in webpage driver.switch_to.default_content() driver.execute_script( "arguments[0].style.display='inline'", driver.find_element_by_xpath( '//*[@id="g-recaptcha-response"]' ), ) driver.execute_script( 'document.getElementById("g-recaptcha-response").innerHTML = "%s"' % captcha_response ) driver.switch_to.default_content()
def CreateAccount(email): s = requests.session() headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36', 'Host': 'undefeated.com', 'Origin': 'https://undefeated.com', 'Referer': 'https://undefeated.com/account/register' } data = { 'form_type': 'create_customer', 'utf8': '✓', 'customer[first_name]': fname, 'customer[last_name]': lname, 'customer[email]': email, 'customer[password]': password } r1 = s.post("https://undefeated.com/account", data=data, headers=headers) if r1.url == captcha_url: print("Encountered captcha") soup = BeautifulSoup(r1.text, "html.parser") authToken = soup.find("input", {"name": "authenticity_token"})['value'] print("Sending job to anti-captcha, please wait for it to be solved") print( "If this is taking a long time to solve, go to https://anti-captcha.com/clients/reports/dashboard to check if it's still being solved" ) client = AnticaptchaClient(api_key) task = NoCaptchaTaskProxylessTask(captcha_url, sitekey) job = client.createTask(task) job.join() job.get_solution_response() headers2 = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36', 'Origin': 'https://undefeated.com', 'Referer': 'https://undefeated.com/challenge' } data2 = { 'utf8': '✓', 'authenticity_token': authToken, 'g-recaptcha-response': job.get_solution_response() } r1 = s.post("https://undefeated.com/account", data=data2, headers=headers2) if r1.url == "https://undefeated.com/": print("Successfully created an account with {}".format(email)) SaveToFile() else: print("Creation unsuccessful") else: print("Successfully created an account with {}".format(email)) SaveToFile()
def resolve(url, api_key, site_key): client = AnticaptchaClient(api_key) task = NoCaptchaTaskProxylessTask(url, site_key) job = client.createTask(task) job.join() return job.get_solution_response()
def solveCaptcha(): api_key = '0bb959acace0ae069bb6b33015b158df' captcha_fp = open('captcha.png', 'rb') client = AnticaptchaClient(api_key) task = ImageToTextTask(captcha_fp) job = client.createTask(task) job.join() return (job.get_captcha_text())
def authenticate(driver): #autentifocation window_handle = driver.window_handles[0] time.sleep(1) allow_cookies_btn = driver.find_element_by_css_selector('.cc-btn.cc-allow') if allow_cookies_btn: allow_cookies_btn.click() time.sleep(1) auth_form = driver.find_element_by_id('new_allbestbets_user') sign_in_url = auth_form.get_attribute('action') print(sign_in_url) """print(hiddens) csrf_token = soup.find('meta', {'name': 'csrf-token'}) if csrf_token: csrf_token = csrf_token.get('content') print(csrf_token)""" div_recaptcha = auth_form.find_element_by_css_selector('div.g-recaptcha') print(div_recaptcha) site_key = div_recaptcha.get_attribute('data-sitekey') print(site_key) recaptcha_url = div_recaptcha.find_element_by_xpath('preceding-sibling::script').get_attribute('src') print(recaptcha_url) time.sleep(1) submit_btn = auth_form.find_element_by_css_selector('button.button-clear') auth_form.find_element_by_id('allbestbets_user_email').send_keys(login['user']) time.sleep(1) auth_form.find_element_by_id('allbestbets_user_password').send_keys(login['pass']) time.sleep(1) solution = '' while not solution: try: client = AnticaptchaClient(anticaptcha_key) task = NoCaptchaTaskProxylessTask(recaptcha_url, site_key) job = client.createTask(task) job.join() solution = job.get_solution_response() print(solution) except Exception as exc: print(exc) time.sleep(1) driver.execute_script(f"document.getElementById('g-recaptcha-response').innerHTML='{solution}';") #recaptcha_textarea = auth_form.find_element_by_id('g-recaptcha-response') #recaptcha_textarea.send_keys(solution) recaptcha_frame = div_recaptcha.find_element_by_tag_name('iframe') driver.switch_to.frame(recaptcha_frame) driver.execute_script("document.getElementById('recaptcha-anchor').classList.remove('recaptcha-checkbox-unchecked');document.getElementById('recaptcha-anchor').classList.add('recaptcha-checkbox-checked');") #recaptcha_checkbox = driver.find_element_by_css_selector('div.recaptcha-checkbox-border') #recaptcha_checkbox.click() time.sleep(1) driver.switch_to.window(window_handle) submit_btn.click() """else:
def solve_captcha(img_file_path): captcha_fp = open(img_file_path, 'rb') client = AnticaptchaClient(api_key) task = ImageToTextTask(captcha_fp) job = client.createTask(task) job.join() print("Captcha Results Arrvied!") Captcha_text = job.get_captcha_text() return Captcha_text
def solveReCaptcha(self, api, sitekey = None): if sitekey == None: sitekey = self.getSiteKey() client = AnticaptchaClient(api) task = NoCaptchaTaskProxylessTask(self.driver.current_url, sitekey) job = client.createTask(task) job.join() code = job.get_solution_response() #self.inject("g-recaptcha-response", code, "id") #for me, right now this is unreliabily injecting return code
def test_invisible_captcha(self): client = AnticaptchaClient(os.environ['KEY']) task = NoCaptchaTaskProxylessTask( website_url= 'https://losangeles.craigslist.org/lac/kid/d/housekeeper-sitting-pet-care/6720136191.html', website_key='6Lc-0DYUAAAAAOPM3RGobCfKjIE5STmzvZfHbbNx', ) job = client.createTask(task) job.join() self.assertIsInstance(job.get_solution_response(), six.string_types)
def process(url): client = AnticaptchaClient(api_key) task = CustomCaptchaTask( imageUrl=url, assignment="Count the dots and indicate their color.", form=form) job = client.createTask(task) job.join() answer = job.get_answers() return answer['dot_count'], answer['dot_color']
def solve_captcha(url): image = io.imread(url) image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) cv2.imwrite('captcha.jpg', image) captcha_fp = open('captcha.jpg', 'rb') client = AnticaptchaClient(anticaptcha_key) task = ImageToTextTask(captcha_fp) job = client.createTask(task) job.join() return job.get_captcha_text(), job.task_id
def solve_captcha(filepath): """ résolution du captcha """ try: api_key = '7efb4f91db0301564967acb3ebde07f9' captcha_fp = open(filepath, 'rb') client = AnticaptchaClient(api_key) task = ImageToTextTask(captcha_fp) job = client.createTask(task) job.join() return job.get_captcha_text() except Exception as error: print(error)
def solve_captcha_image(self): element = self.driver.find_element_by_id('captcha_img').screenshot_as_png im = Image.open(BytesIO(element)) # uses PIL library to open image in memory im.save('screenshot.png') # saves new cropped image api_key = co.API_CAPTCHA_KEY captcha_fp = open('screenshot.png', 'rb') client = AnticaptchaClient(api_key) task = ImageToTextTask(captcha_fp) job = client.createTask(task) job.join() print(job.get_captcha_text()) self.driver.find_element_by_xpath('//*[@id="imagestring"]').send_keys(job.get_captcha_text())
def solve_captcha(self, url, html): key_pattern = re.compile("Packt.offers.onLoadRecaptcha\(\'(.+?)\'\)") site_key = key_pattern.search(html.find(text=key_pattern)).group(1) client = AnticaptchaClient(self.account_data.anticaptcha_clientkey) task = NoCaptchaTaskProxylessTask(url, site_key) job = client.createTask(task) logger.info("Task ID {} created. Waiting to finish.".format(job.task_id)) start = time.time() job.join() end = time.time() logger.info("Taks finished in {:.2f} second".format(end - start)) return job.get_solution_response()
def captcha_handler2(captcha): """ При возникновении капчи вызывается эта функция и ей передается объект капчи. Через метод get_url можно получить ссылку на изображение. Через метод try_again можно попытаться отправить запрос с кодом капчи """ captcha_fp = makeImage(captcha.get_url()) client = AnticaptchaClient(ANTICAPTCHA_KEY) task = ImageToTextTask(captcha_fp) job = client.createTask(task) job.join() return captcha.try_again(job.get_captcha_text())
def get_recaptcha_response(cls, page): try: key = cls.get_recaptcha_key(page) client = AnticaptchaClient(cls.anticaptcha_api_key) task = NoCaptchaTaskProxylessTask(cls.auth_url, key) job = client.createTask(task) job.join() recaptcha_res = job.get_solution_response() except Exception as err: logging.error(f"Couldn't get recaptcha response / {err}") return "" return recaptcha_res
class AntiCaptchaSolver(): def __init__(self, api_key): self.__client = AnticaptchaClient(api_key) def __createTask(self, task): return self.__client.createTask(task) def solveTask(self, website_url, website_key): job = self.__createTask( NoCaptchaTaskProxylessTask(website_url, website_key)) job.join() return job.get_solution_response()
def get_captcha(url, api_key, site_key): print("[CHECKING] captcha (siteKey = %s, apiKey = %s)" % (site_key, api_key)) try: client = AnticaptchaClient(api_key) task = NoCaptchaTaskProxylessTask(url, site_key) job = client.createTask(task) job.join() return job.get_solution_response() except AnticaptchaException as ae: print("[ERROR] error = %s" % str(ae)) return None
def imageCaptchaSolver(image_path): captcha_fp = open(image_path, 'rb') client = AnticaptchaClient(os.getenv("ANTI_CAPTCH_API_KEY")) task = ImageToTextTask(captcha_fp) job = client.createTask(task) job.join() captcha_text = job.get_captcha_text() return captcha_text # import requests # import os # import base64 # def get_base64_encoded_image(image_path): # with open(image_path, "rb") as img_file: # return base64.b64encode(img_file.read()).decode('utf-8') # def imageCaptchaSolver(image_path): # image64 = get_base64_encoded_image(image_path) # r = requests.post( # 'https://api.capmonster.cloud/createTask', # json = { # "clientKey":"4b09560fde218b7545a7a043089532df", # "task": # { # "type":"ImageToTextTask", # "body":image64 # } # } # ).json() # print(r) # sol = {"status": "wait"} # while sol["status"]!= "ready": # sol = requests.post( # "https://api.capmonster.cloud/getTaskResult/", # json = { # "clientKey":"4b09560fde218b7545a7a043089532df", # "taskId": r["taskId"] # } # ).json() # print(sol) # captcha_text = sol["solution"]["text"] # print(captcha_text) # return captcha_text
def solve_captcha(url): print("solving captcha....") res = None try: client = AnticaptchaClient(API_KEY) task = NoCaptchaTaskProxylessTask(url, SITE_KEY) job = client.createTask(task) job.join() res = job.get_solution_response() print("Captcha solved !!") except Exception as err: print("Captcha not solved... Error:", err) return res
def solve_captcha(self, driver): driver.find_element_by_xpath( "//img[@title = 'Image CAPTCHA']").screenshot('captcha_0.png') try: driver.find_element_by_id('edit-accept-tos') driver.execute_script( "document.getElementById('edit-accept-tos').click()") finally: api_key = 'mykey' captcha_fp = open('captcha_0.png', 'rb') client = AnticaptchaClient(api_key) task = ImageToTextTask(captcha_fp) job = client.createTask(task) job.join() captcha = job.get_captcha_text() driver.find_element_by_id('edit-captcha-response').send_keys( captcha) driver.find_element_by_id('edit-op').click() return driver