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

Парсинг Python Как обойти защиту сайта?

Не дает залогиниться, видит что бот... Подскажите, как обойти ? Вот код:
from selenium import webdriver
import time
from selenium.webdriver.common.by import By
import pyautogui

options = webdriver.ChromeOptions()
options.add_argument("start-maximized")

url = 'https://5140.org/fops/page-1'

driver = webdriver.Chrome(options=options, executable_path=r"/media/anatolii/Data/Python_lern/pythonProject/all_tov/chromedriver")

driver.get(url)

time.sleep(5)

# x, y = pyautogui.position()
# print(x, y)
pyautogui.click(1213, 204)
time.sleep(3)
login = driver.find_element(By.ID, 'loginform-email')
password = driver.find_element(By.ID, 'loginform-password')
time.sleep(3)
login.send_keys('mail@mail.ru')
time.sleep(2)
password.send_keys('password')
time.sleep(3)
pyautogui.click(1183, 501)


Добавил куки и юзер агент в код:
ua = UserAgent()
us_ag = ua.random
options = webdriver.ChromeOptions()
options.add_argument("start-maximized")
options.add_argument(f'user-agent={us_ag}')


и

driver.add_cookie(
        {
        '__cf_bm':"O.jl1bMk7AiGZvrN4CS_.KLqF9kOWU0wfN4rNK5CbGs-1660731720-0-AZY0NGbSyGF+j5loar4iFxZBAPgbsRGHuFfdwEJI3gmGW9gKxFjlLOGQcP01ug5ybcMNMY8plOy6DzBY2BQ/gsfNhkm7TOO89d1K/f2akx3z56+69nUprtnCE9dpBlg/4Q==",
        '_csrf': "19ff889cad2821912bb53ff5c8326ce8db3db5f4f117146e7d7ea2d00293fe4aa:2:{i:0;s:5:\"_csrf\";i:1;s:32:\"F7n-ayDjs8tGacpEsLtiioJ0WQ_5jE4n\";}",
        '_ga:':	"GA1.2.1779771971.1660719853",
        '_gid':	"GA1.2.455984854.1660719853",
        '_identity': "1ce006a89edd1c2a02a5f938aa08fc81b14204a44242d50b227a11aa044e06e9a:2:{i:0;s:9:\"_identity\";i:1;s:50:\"[38537,\"6RaU_esckPQQpYKFpHQqBMKwXQrKTeHy\",2592000]\";}",
        '_ym_d': "1660719852",
        '_ym_hostIndex':	"0-37,1-0",
        '_ym_isad':	"2",
        '_ym_uid': "1660719852774666658",
        '_ym_visorc': "w",
        'PHPSESSID': "41310956357f59c376c20ae1d77b48fb"
        }
    )


Результата нет. Не пускает на сайт. 2 варианта ответа:
1. Сообщает сайт, что доступ закрыт.
2. выдает ошибки:

_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: missing 'name'
(Session info: chrome=104.0.5112.101)
Stacktrace:
  • Вопрос задан
  • 3356 просмотров
Подписаться 4 Простой Комментировать
Решения вопроса 1
drygdryg
@drygdryg
Python-разработчик
Попробуйте использовать драйвер undetected-chromedriver для Selenium. Он содержит в себе алгоритмы, позволяющие скрывать средства автоматизации браузера, тем самым становясь менее подозрительным для веб-приложения и всевозможных WAF. Возможно, что потребуется запуск браузера в обычном режиме (не headless), чтобы проходить разнообразные антибот-проверки, реализованные на фронтенде в виде JavaScript-скриптов. В таком случае, если вы запускаете программу на сервере без экрана, используйте PyVirtualDisplay для эмуляции экрана через Xvfb, например.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Wacdis
@Wacdis
PHP, Python, GO, Rust, NodeJS, SOA/MSA
Вы пробовали авторизироваться, потом считать url куда отправило, установить куки, потом перейти на этот же url, так как куки работают только на ту страницу, на которую ты уже зашел, а не на ту, куда собрался заходить.
Ответ написан
Ваш ответ на вопрос

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

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