Как настроить webdriver так, чтобы при его запуске в браузере были авторизированны аккаунты на сайтах?
Ситуация следующая: пишу бота рассыльщика для Авито. Суть простая -
- Передаем название запроса
- Бот парсит страницу поиска и записывает в коллекцию ссылки на объявления
- Переходим на страницу объявления
- Кликаем на кнопку "Написать сообщение"
- Заполняем html-форму текстом и отправляем сообщение нажатием кнопки "Отправить сообщение"
Вот код:
import time
import requests
from bs4 import BeautifulSoup
from selenium import webdriver
from hyper.contrib import HTTP20Adapter
from selenium.webdriver.common.by import By
try:
print("Enter your request: ")
product_search_name = input()
url = "https://www.avito.ru/all?cd=1&q=" + product_search_name + "&s=104"
session = requests.Session()
session.mount('https://', HTTP20Adapter())
request = session.get(url)
print("Status code: ", request.status_code)
beautiful_soup_processor = BeautifulSoup(request.text, "html.parser")
all_links = beautiful_soup_processor.find_all("a", class_="iva-item-title-py3i_")
driver = webdriver.Edge(executable_path = r'C:\Program Files (x86)\msedgedriver.exe')
for link in all_links:
print("https://www.avito.ru" + link["href"])
link_avito = "https://www.avito.ru" + link["href"]
ff_request = driver.get(link_avito)
print(link_avito)
submit = driver.find_element(By.CLASS_NAME, "messenger-button-root-X8WGM ")
time.sleep(2)
submit.click()
time.sleep(2)
sbox = driver.find_element(By.CLASS_NAME, "channel- bottom-base-input-MfbcO")
time.sleep(2)
sbox.send_keys("Здравствуйте")
time.sleep(2)
submit = driver.find_element(By.CLASS_NAME, "clickable-button-MWD6w")
time.sleep(2)
submit.click()
except Exception as e:
print(e)
Проблема заключается следующем - когда вебдрайвер открывает браузер Microsoft Edge, то это абсолютно чистый браузер без каких либо авторизированных аккаунтов в нем ( в процессе работы авторизоваться внутри работающего через вебдрайвер браузера не получается, авито выдаёт ошибку в виде "попробуйте снова".
Для написания сообщения пользователю необходимо иметь авторизированный аккаунт, следовательно задача состоит в том, чтобы настроить опции вебдрайвера.
Была предпринята попытка и соответственно написан следующий код:
edge_options = webdriver.EdgeOptions()
edge_options.use_chromium = True
edge_options.add_argument("user-data-dir=C:\\Users\\user\\AppData\\Local\\Microsoft\\Edge\\User Data\\Default")
edge_options.add_argument("profile-directory=Profile 1")
driver = webdriver.Edge(options = edge_options, executable_path = r'C:\Program Files (x86)\msedgedriver.exe')
Код не работает, ошибка не вылетает, он просто не даёт никаких результатов, кроме того, что в запущенном через вебдрайвер браузере теперь есть возможность выбрать мой профиль, но при выборе нового профиля открывается новое окно браузера, где так же, по непонятным причинам не авторизован профиль авито и в него так же нельзя войти в процессе работы кода.
Что можно сделать? Заранее спасибо за ответы)