Добавить main_cookies.py

This commit is contained in:
evgeniy_t 2025-01-25 15:23:50 +05:00
commit fba15a4cfe

105
main_cookies.py Normal file
View File

@ -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 минут