Эффективный способ опубликовать XMLhttprequest с Selenium, в то время как доходность для ratelimit - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть этот скрипт, использующий Selenium для входа в систему и перехода по веб-сайту на целевую страницу, затем я использую POST HTTPRequest для отправки формы вместе с поиском капчи.

Причина, по которой я хочу использовать HTTPRequest, заключается в том, что на сайте практически невозможно получить точный необходимый элемент для заполнения и отправки формы (xPath и CSS также не работают)

Мой вопроскак я могу сделать это лучше?И как я могу получить ограничение скорости, чтобы у аккаунта не было проблем?

Так вот часть моего кода, где мне нужно отправить форму.

def work(self):
    try:
        proxy = self.get_proxy()
        self.chrome_options.add_argument('--proxy-server=socks://{}'.format(proxy))
        self.driver = webdriver.Chrome(chrome_options=self.chrome_options, executable_path=self.exe_path)
        self.driver.get(self.web_url)
        ua = UserAgent()
        if self.is_visible('g-recaptcha') is True:
            cookies = pickle.dump(self.driver.get_cookies())
            js = '''
            var piggy = new XMLHttpRequest();
            piggy.open('POST', 'https://website.com', true);
            piggy.setRequestHeader(
            'Accept', 'application/json, text/plain, */*';
            'User-Agent', '{}'.format(au.random);
            'Content-Type', 'application/json';
            'Referer', 'https://website.com';
            'Cookie', '{}'.format(cookies);
            );
            piggy.send('"info": "{}".format('Some Info'), "captcha": "{}".format(self.captoken());
            return this.responseText
            };
            '''
            result = self.driver.execute_script(js)
            print(result)
    except Exception as e:
        print('Error on line {}'.format(sys.exc_info()[-1].tb_lineno), type(e).__name__, e)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...