с сохранёнными cookies вновь требуется авторизация
я хочу обойти капчу используя куки, куки сохраняются если нажать Ctrl + Q. Я ввел почту и пароль, прошел капчу и сохранил куки. Но когда я заново открываю сайт и загружаю куки то приходится опять писать пароль и проходить капчу
вот код:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
import pickle
from time import sleep
import keyboard
options = Options()
# options.add_argument("--headless")
options.add_argument("start-maximized")
# чтобы не определялось как тестовое ПО
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
options.add_argument("--disable-blink-features=AutomationControlled")
driver = webdriver.Chrome(options=options)
def save_cookie():
with open("cookie.pkl", 'wb') as filehandler:
pickle.dump(driver.get_cookies(), filehandler)
print('saved')
def load_cookie():
with open("cookie.pkl", 'rb') as cookiesfile:
cookies = list(pickle.load(cookiesfile))
for cookie in cookies:
print(cookie)
driver.add_cookie(dict(cookie))
# где-то прочитал что так нужно делать чтобы сайт не понял что это бот
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
'source': '''
delete window.cdc_adoQpoasnfa76pfcZLmcfl_Array;
delete window.cdc_adoQpoasnfa76pfcZLmcfl_Promise;
delete window.cdc_adoQpoasnfa76pfcZLmcfl_Symbol;
delete window.cdc_adoQpoasnfa76pfcZLmcfl_JSON;
delete window.cdc_adoQpoasnfa76pfcZLmcfl_Object;
delete window.cdc_adoQpoasnfa76pfcZLmcfl_Proxy;
'''
})
driver.get('https://2captcha.com/enterpage')
# load_cookie() # перед вторым запуском надо раскоментировать
keyboard.add_hotkey('Ctrl + Q', save_cookie)
sleep(100)
driver.close()
driver.quit()
Ответы (1 шт):
Автор решения: Fierce Goose
→ Ссылка
я создал в хроме профиль в котором ввел имейл и пароль на сайте и загрузил его в коде, теперь всё работает. Для этого надо добавить такие опции:
options.add_argument(f"--user-data-dir={путь_к_папке_с_профилями}")
options.add_argument(f"--profile-directory={папка_профиля}")
путь к профилю можно посмотреть если в хроме написать chrome://version/