Решение рекапчи с помощью Python в сеансе Selenium Chrome (2Captcha)

Я хочу разрешить ReCaptcha на веб-сайтах через Python с модулем Selenium.

Мой вопрос: как я могу отправить запрос 2Captcha из браузера Selenium Chrome, который разрешает ReCaptcha и проверяет успешный результат на странице selenium chrome?

Я хочу, чтобы сценарий щелкнул кнопку отправки после его разрешения, чтобы я мог продолжить свой сценарий Selenium.

Приведенный ниже код успешно разрешает ReCaptcha, но он находится за пределами Selenium.

import requests
from time import sleep

# Add these values
API_KEY = 'FILLINAPIKEYHERE'  # Your 2captcha API KEY
site_key = 'FILLINTHEPAGE'SRECAPTCHAKEYHERE'  # site-key, read the 2captcha docs on how to get this
url = 'THEWEBPAGETHATNEEDSRESOLVEMENT'  # example url
proxy = 'PROXY:PORTINHERE'  # example proxy

proxy = {'http': 'http://' + proxy, 'https': 'https://' + proxy}

s = requests.Session()

# here we post site key to 2captcha to get captcha ID (and we parse it here too)
captcha_id = s.post("http://2captcha.com/in.php?key = {}&method=userrecaptcha&googlekey = {}&pageurl = {}".format(API_KEY, site_key, url), proxies=proxy).text.split('|')[1]
# then we parse gresponse from 2captcha response
recaptcha_answer = s.get("http://2captcha.com/res.php?key = {}&action=get&id = {}".format(API_KEY, captcha_id), proxies=proxy).text
print("solving ref captcha...")
while 'CAPCHA_NOT_READY' in recaptcha_answer:
    sleep(5)
    recaptcha_answer = s.get("http://2captcha.com/res.php?key = {}&action=get&id = {}".format(API_KEY, captcha_id), proxies=proxy).text
recaptcha_answer = recaptcha_answer.split('|')[1]

# we make the payload for the post data here, use something like mitmproxy or fiddler to see what is needed
payload = {
    'key': 'value',
    'gresponse': recaptcha_answer  # This is the response from 2captcha, which is needed for the post request to go through.
    }


# then send the post request to the url
response = s.post(url, payload, proxies=proxy)

# And that's all there is to it other than scraping data from the website, which is dynamic for every website.

Есть ли в этом прогресс?

edyvedy13 24.11.2018 21:44

Единственный способ заставить его работать - использовать API bestcaptcharesolver. com. У них есть хороший гитхаб, который все это объясняет. Удачи!

Romano 27.11.2018 10:05

Не могли бы вы поделиться своим кодом здесь?

edyvedy13 27.11.2018 13:31
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
3
3
1 391
0

Другие вопросы по теме