Задать вопрос
@RD1706D

Как пройти ReCaptcha V3?

Имеется сайт с которого парсим информацию: https://nsso.ru/check_policy/gop/inn он защищён с помощью рекапчи v3.

Написал код с использованием библиотеки от RuCaptcha:

import os
import time
import random
import pandas as pd
import undetected_chromedriver as uc
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from twocaptcha import TwoCaptcha
from bs4 import BeautifulSoup


class MainParser:
    def __init__(self):
        self.solver = TwoCaptcha('API_KEY')

        self.driver = uc.Chrome()

        self.excel_data = pd.read_excel("Список ИНН.xlsx")
        self.excel_out_path = "out.xlsx"
        self.inn_list = self.excel_data["ИНН"].tolist()

    def bypass_captcha(self):
        self.driver.get('https://nsso.ru/check_policy/gop/inn/')

        token = self.driver.find_element(By.CSS_SELECTOR, ".g-recaptcha").get_attribute("data-sitekey")
        
        solved_token = self.solver.recaptcha(
            sitekey=token,
            url='https://nsso.ru/check_policy/gop/inn/',
            score=0.7,
            version='v3'
        )

        element = self.driver.find_element(By.CSS_SELECTOR, "#g-recaptcha-response")
        self.driver.execute_script("arguments[0].value = arguments[1];", element, solved_token['code'])

        print(solved_token)

    def search_by_inn(self, inn):
        table_data = []

        self.driver.find_element(By.CSS_SELECTOR, "#sDocNo_INN").send_keys(inn)
        self.driver.find_element(By.CSS_SELECTOR, ".g-recaptcha").click()  # После нажатия этой кнопки ошибка
  
  def data_processing(self):
    for inn in self.inn_list:
      self.bypass_captcha()
      self.search_by_inn(inn)

if __name__ == '__main__':
    parser = MainParser()
    parser.data_processing()


Ранее оно работало и без:
element = self.driver.find_element(By.CSS_SELECTOR, "#g-recaptcha-response")
self.driver.execute_script("arguments[0].value = arguments[1];", element, solved_token['code'])


Не знаю как так)

В качестве библиотеки для работы с браузером использую Undetected Chromedriver.

UPD: при нажатии кнопки отправки пишет: Защита от спама не пройдена
UPD: Добавил полный код и скрин:
692722e78774a904961980.png
  • Вопрос задан
  • 122 просмотра
Подписаться 1 Средний 6 комментариев
Помогут разобраться в теме Все курсы
  • Stepik
    Selenium на Python за 3 часа
    1 неделя
    Далее
  • Учебный центр IBS
    SQA-050 Школа автоматизированного тестирования. Часть 2. Selenium WebDriver
    1 неделя
    Далее
  • Нетология
    Инженер по тестированию
    8 месяцев
    Далее
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы