80 lines
2.4 KiB
Python
80 lines
2.4 KiB
Python
import subprocess
|
|
import os
|
|
import time
|
|
import signal
|
|
|
|
def iniciar_chrome(chrome_path,
|
|
user_data_dir,
|
|
headless=False,
|
|
debugging_port=9222,
|
|
user_agent=None,
|
|
):
|
|
|
|
# Asegúrate de que el directorio del perfil exista
|
|
os.makedirs(user_data_dir, exist_ok=True)
|
|
|
|
# Lista de argumentos para Chrome
|
|
chrome_args = [
|
|
f"--remote-debugging-port={debugging_port}",
|
|
f"--user-data-dir={user_data_dir}",
|
|
"--disable-blink-features=AutomationControlled",
|
|
"--no-sandbox",
|
|
"--disable-web-security",
|
|
"--disable-extensions",
|
|
"--disable-dev-shm-usage",
|
|
"--disable-infobars",
|
|
"--disable-popup-blocking",
|
|
"--disable-default-apps",
|
|
"--mute-audio",
|
|
"--window-size=1024,1024",
|
|
|
|
]
|
|
|
|
if not headless:
|
|
pass
|
|
else:
|
|
chrome_args.append("--headless=new") # para versiones recientes de Chrome
|
|
|
|
if not user_agent:
|
|
pass
|
|
else:
|
|
chrome_args.append(f"--user-agent={user_agent}")
|
|
|
|
# Comando para iniciar Chrome
|
|
chrome_process = subprocess.Popen([chrome_path] + chrome_args)
|
|
|
|
try:
|
|
print(f"Chrome iniciado (headless={headless}). Presiona Ctrl+C para salir.")
|
|
while True:
|
|
if chrome_process.poll() is not None:
|
|
print("Chrome se ha cerrado.")
|
|
break
|
|
time.sleep(1)
|
|
except KeyboardInterrupt:
|
|
print("Terminando proceso de Chrome...")
|
|
chrome_process.terminate()
|
|
try:
|
|
chrome_process.wait(timeout=5)
|
|
except subprocess.TimeoutExpired:
|
|
chrome_process.kill()
|
|
print("Chrome cerrado correctamente.")
|
|
|
|
|
|
# Ruta al ejecutable de Chrome
|
|
chrome_path = r"C:\Program Files\Google\Chrome\Application\chrome.exe"
|
|
|
|
# Directorio para el perfil de usuario
|
|
user_data_dir = os.path.abspath("./Perfiles_usuario/chrome_profile")
|
|
|
|
# Puerto para la depuración remota
|
|
port = 9222
|
|
|
|
user_agent= "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36"
|
|
|
|
|
|
# Llama a la función con True o False
|
|
iniciar_chrome(chrome_path=chrome_path,
|
|
user_data_dir=user_data_dir,
|
|
debugging_port=port,
|
|
headless=False,
|
|
user_agent=user_agent) # Cambia a True para modo headless |