From fba15a4cfef8dd95347a730b1dc48c9b4d4e430e Mon Sep 17 00:00:00 2001 From: evgeniy_t Date: Sat, 25 Jan 2025 15:23:50 +0500 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20main=5Fcookies.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main_cookies.py | 105 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 main_cookies.py diff --git a/main_cookies.py b/main_cookies.py new file mode 100644 index 0000000..3c82d7e --- /dev/null +++ b/main_cookies.py @@ -0,0 +1,105 @@ +import os +import time +import subprocess +from selenium import webdriver +from selenium.webdriver.chrome.options import Options + +# Константы +CHROME_PROFILE_PATH = r"C:\Users\admin\AppData\Local\Google\Chrome\User Data" +LOCAL_COOKIES_PATH = r"C:\Scripts\cookies.txt" +PRIVATE_KEY_PATH = r"C:\Scripts\id_rsa" +SERVER_USER = "#" +SERVER_IP = "#" +REMOTE_COOKIES_PATH = "/usr/script/main/cookies.txt" + + +def extract_cookies(): + """Извлечение cookies с помощью Selenium.""" + try: + # Настройка Chrome WebDriver + options = Options() + options.add_argument(f"user-data-dir={CHROME_PROFILE_PATH}") + options.add_argument("profile-directory=Default") # Используем профиль по умолчанию + + # Запуск WebDriver + driver = webdriver.Chrome(options=options) + driver.get("https://www.youtube.com") + time.sleep(5) # Ожидаем загрузку страницы + + # Проверяем авторизацию + if "Sign in" not in driver.page_source: + print("Мы авторизованы!") + else: + print("Не удалось авторизоваться.") + driver.quit() + return False + + # Извлекаем cookies + cookies = driver.get_cookies() + with open(LOCAL_COOKIES_PATH, "w") as file: + file.write("# Netscape HTTP Cookie File\n") + file.write("# http://curl.haxx.se/rfc/cookie_spec.html\n") + file.write("# This is a generated file! Do not edit.\n\n") + for cookie in cookies: + expiry = cookie.get('expiry', '') + file.write( + f"{cookie['domain']}\tTRUE\t{cookie['path']}\t{str(cookie['secure']).upper()}\t{expiry}\t{cookie['name']}\t{cookie['value']}\n" + ) + print(f"Cookies сохранены в {LOCAL_COOKIES_PATH}") + driver.quit() + return True + except Exception as e: + print(f"Ошибка при извлечении cookies: {e}") + return False + + +def transfer_cookies_via_scp(): + """Передача cookies на сервер с использованием SCP через subprocess.""" + try: + # Проверяем наличие ключа + if not os.path.exists(PRIVATE_KEY_PATH): + print(f"Файл ключа {PRIVATE_KEY_PATH} не найден.") + return False + + # Формируем команду SCP + scp_command = [ + "scp", + "-i", PRIVATE_KEY_PATH, + LOCAL_COOKIES_PATH, + f"{SERVER_USER}@{SERVER_IP}:{REMOTE_COOKIES_PATH}" + ] + + # Выполняем команду SCP + result = subprocess.run(scp_command, check=True, text=True, capture_output=True) + + if result.returncode == 0: + print(f"Cookies успешно переданы на сервер {SERVER_IP}.") + return True + else: + print(f"Ошибка при передаче cookies: {result.stderr}") + return False + except subprocess.CalledProcessError as e: + print(f"Ошибка при выполнении SCP: {e.stderr}") + return False + except Exception as e: + print(f"Общая ошибка: {e}") + return False + + +if __name__ == "__main__": + print("Начинаем выполнение скрипта каждые 5 минут.") + while True: + try: + if extract_cookies(): + if transfer_cookies_via_scp(): + print("Процесс завершён успешно.") + else: + print("Ошибка при передаче cookies.") + else: + print("Ошибка при извлечении cookies.") + except Exception as e: + print(f"Общая ошибка выполнения скрипта: {e}") + + # Ждём 5 минут перед следующим запуском + print("Ждём 5 минут перед следующим выполнением...") + time.sleep(300) # 300 секунд = 5 минут \ No newline at end of file