hCaptcha не отображается на Selenium Chromedriver - PullRequest
0 голосов
/ 31 марта 2020

Я пытаюсь создать сборщик токенов h-captcha, чтобы я мог вручную решить задачу с использованием капчи, извлечь токен и затем передать этот токен автоматизированному программному обеспечению, чтобы он мог обойти h-captcha на веб-сайте.

Я мог сделать это раньше с помощью Google ReCaptcha, но веб-сайт, который я пытаюсь пройти, теперь переключился на h-captcha. Я запускаю скрипт python, чтобы открыть харвестер h-captcha для www.sneakersnstuff.com, и код показан ниже:

import time, getpass, selenium
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager


class harvest:
    def __init__(self):
        self.chrome = webdriver.Chrome(executable_path=ChromeDriverManager().install()) #starts webdriver
        self.htmlcode = "<html><meta name='viewport' content='width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no'><head><script type='text/javascript' src='https://hcaptcha.com/1/api.js'></script><script src='http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js' type='text/javascript'></script></head><body><center><form action='http://127.0.0.1:5000/solve' method='post'><fieldset><div class='h-captcha' data-sitekey='33f96e6a-38cd-421b-bb68-7806e1764460' data-callback='sub'></div><p> <input type='submit' value='Submit' id='submit'> </p></fieldset></form><fieldset><h5 style='width: 10vh;'> <a style='text-decoration: none;' href='http://127.0.0.1:5000/json' target='_blank'>Usable Tokens</a> </h5></fieldset></center></body></html>" #the html script that should be executed

        self.chrome.get(self.domain)  # opens domain of website

    def solve(self):
        self.chrome.execute_script(
                'document.write("{}")'.format(self.htmlcode))  # executes html code that brings up h-captcha for website
        time.sleep(1)
        try:
            self.chrome.execute_script(
                "var evt = document.createEvent('Event');evt.initEvent('load', false, false);window.dispatchEvent(evt);")
        except selenium.common.exceptions.WebDriverException:
            pass
        while True:
            if 'Success' in self.chrome.page_source:
                break
            else:
                pass


if __name__ == '__main__':
    s = harvest()
    input('Press Enter to Begin Solving')
    s.solve()

Скрипт python запускает скрипт html (указано в самом себе. html код) в начале функции решения. Когда я сам запускаю тот же самый точный скрипт html, я могу нормально отобразить h-капчу, но когда я запускаю этот код, h-капча не отображается. Может кто-нибудь помочь?

На что это похоже, когда я запускаю только скрипт html сам (что я хочу получить): Поле h-captcha показывает

Как это выглядит, когда я запускаю скрипт python (с тем же кодом html): Он не показывает поле h-captcha

...