Example #1
0
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()
Example #2
0
    def getCaptchaAnswer(self, captchaType, url, siteKey, reCaptchaParams):
        if not reCaptchaParams.get('api_key'):
            raise reCaptchaParameter("anticaptcha: Missing api_key parameter.")

        client = AnticaptchaClient(reCaptchaParams.get('api_key'))

        if reCaptchaParams.get('proxy'):
            client.session.proxies = reCaptchaParams.get('proxies')

        captchaMap = {
            'reCaptcha': NoCaptchaTaskProxylessTask,
            'hCaptcha': HCaptchaTaskProxyless
        }

        task = captchaMap[captchaType](url, siteKey)

        if not hasattr(client, 'createTaskSmee'):
            raise NotImplementedError(
                "Please upgrade 'python_anticaptcha' via pip or download it from "
                "https://github.com/ad-m/python-anticaptcha/tree/hcaptcha")

        job = client.createTaskSmee(task)

        try:
            job.join(maximum_time=180)
        except (AnticaptchaException) as e:
            raise reCaptchaTimeout('{}'.format(getattr(e, 'message', e)))

        if 'solution' in job._last_result:
            return job.get_solution_response()
        else:
            raise reCaptchaAPIError(
                'Job did not return `solution` key in payload.')
Example #3
0
    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()
Example #4
0
    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()
Example #5
0
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()
Example #6
0
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]
Example #8
0
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 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_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()
Example #11
0
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()
Example #12
0
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())
Example #13
0
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()
Example #14
0
def process(url):
    client = AnticaptchaClient(api_key)
    task = CustomCaptchaTask(
        imageUrl=url,
        assignment="Count the dots and indicate their color.",
        form=form)
    job = client.createTaskSmee(task)
    answer = job.get_answers()
    return answer["dot_count"], answer["dot_color"]
Example #15
0
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:
Example #16
0
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
Example #18
0
 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 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
Example #20
0
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()
Example #23
0
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())
Example #24
0
 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
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
Example #27
0
    def __init__(self):
        self.domain = 'http://www.ceo.kerala.gov.in'
        self.base_url = self.domain + '/electoralrolls.html'
        # self.list_url = self.domain + '/electoralroll/partsListAjax.html?currentYear=2021&distNo=6&lacNo=60&sEcho=1&iColumns=5&sColumns=&iDisplayStart=0&iDisplayLength=500&iSortingCols=1&iSortCol_0=0&sSortDir_0=asc&bSortable_0=false&bSortable_1=false&bSortable_2=false&bSortable_3=false&bSortable_4=false&undefined=undefined'
        self.list_url = self.domain + '/electoralroll/partsListAjax.html?currentYear=2021&distNo={}&lacNo={}&sEcho=1&iColumns=5&sColumns=&iDisplayStart=0&iDisplayLength=500&iSortingCols=1&iSortCol_0=0&sSortDir_0=asc&bSortable_0=false&bSortable_1=false&bSortable_2=false&bSortable_3=false&bSortable_4=false&undefined=undefined'
        self.session = requests.Session()

        self.api_key = "e00923a245a141aabc38bf7031e7d35b"
        self.site_key_pattern = 'data-sitekey="(.+?)"'
        self.client = AnticaptchaClient(self.api_key)
        self.site_key = None
        self.task = None
        self.laclist = [
            5, 16, 19, 32, 48, 60, 73, 87, 92, 101, 110, 115, 126, 140
        ]
Example #28
0
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()
Example #29
0
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
Example #30
0
    def parse(self, response):
        with self._make_driver() as driver:
            driver.get(response.url)

            tries = 0
            cap_client = AnticaptchaClient(
                self.settings.get("ANTI_CAPTCHA_KEY"))
            while driver.find_elements_by_id(
                    "captcha_persist_data") and tries < 5:
                self._solve_captcha(cap_client, driver)
                WebDriverWait(driver, 10).until(
                    EC.visibility_of_element_located(
                        (By.ID, "BrowseResultsContainer")))
                tries += 1
                # driver.save_screenshot("meh.png")
                # yield self._ban_proxy_and_repeat(response)
                # return

            skip = 0
            while skip < 200:
                for post in driver.find_elements_by_xpath(
                        "//div[contains(@class, 'fbUserStory')]")[skip:]:
                    yield self.item_from_post(post)
                    skip += 1
                driver.execute_script(
                    "window.scrollTo(0, document.body.scrollHeight);")