Tenego un problema con este código:import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException, NoSuchElementException, ElementClickInterceptedException, NoSuchWindowException

Configuración de Chrome
def configurar_chrome():
chrome_options = Options()
chrome_options.add_argument(r"user-data-dir=C:\Users\rialj\AppData\Local\Google\Chrome\User Data")
chrome_options.add_argument("profile-directory=Default")
return chrome_options

Inicialización del Driver
def inicializar_driver():
chrome_options = configurar_chrome()
driver = webdriver.Chrome(options=chrome_options)
return driver

Palabras Clave
palabras_clave = ["quiero", "saber", "alguien", "como", "trading"]

Funciones Principales
def hacer_click_en_elemento(driver, elemento):
try:
driver.execute_script("arguments[0].scrollIntoView();", elemento)
time.sleep(1)  # Esperar 1 segundo para asegurarse de que el elemento esté visible
elemento.click()
except (TimeoutException, NoSuchElementException, ElementClickInterceptedException) as e:
print(f"Error al hacer clic en el elemento: {e}")
return False
return True

def hacer_scroll_lento(driver, xpath):
try:
contenedor = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, xpath)))
for _ in range(5):  # Realizar 5 scrolls lentos
driver.execute_script("arguments[0].scrollBy(0, 100);", contenedor)  # Desplazamiento más lento
time.sleep(1)  # Esperar 1 segundo entre cada scroll
# Verificar si hay comentarios visibles con palabras clave
if buscar_y_transcribir_comentarios(driver, comentarios_respondidos):
break
except (TimeoutException, NoSuchElementException) as e:
print(f"Error al hacer scroll en el contenedor {xpath}: {e}")

def buscar_y_transcribir_comentarios(driver, comentarios_respondidos):
try:
comentarios = WebDriverWait(driver, 10).until(EC.presence_of_all_elements_located((By.XPATH, '//div[contains(@class, "css-1i7ohvi-DivCommentItemContainer")]')))
for comentario in comentarios:
identificador = comentario.get_attribute("data-e2e")
if identificador in comentarios_respondidos:
continue
texto = comentario.text.lower()
palabras_clave_lower = [palabra.lower() for palabra in palabras_clave]
if any(palabra in texto for palabra in palabras_clave_lower):
print(f"Comentario encontrado: {texto}")
comentarios_respondidos.add(identificador)
# Preguntar al usuario si desea continuar
respuesta = input("¿Deseas seguir buscando comentarios? (s/n): ").lower()
if respuesta != 's':
return False
return True
return False
except (TimeoutException, NoSuchElementException, ElementClickInterceptedException) as e:
print(f"Error al buscar y transcribir comentarios: {e}")
return False

def esperar_captcha():
input("Por favor, resuelve el captcha y presiona Enter para continuar...")

Función Principal
def main():
global comentarios_respondidos
comentarios_respondidos = set()
driver = inicializar_driver()
try:
driver.get("https://www.tiktok.com/discover/trading")
time.sleep(5)  # Reducido a 5 segundos


# Hacer clic en el botón específico
    hacer_click_en_elemento(driver, WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//div[@class="css-559e6k-DivItemContainer e1aajktk28"]'))))

    esperar_captcha()
    time.sleep(5)  # Esperar 5 segundos después de resolver el captcha

    # Primer scroll para que el primer comentario quede fuera de la vista
    hacer_scroll_lento(driver, '//div[contains(@class, "css-1qjw4dg-DivContentContainer")]//div[contains(@class, "css-13if7zh-DivCommentContainer")]//div[contains(@class, "css-1qp5gj2-DivCommentListContainer")]')

    # Bucle principal para buscar y transcribir comentarios
    while True:
        if not buscar_y_transcribir_comentarios(driver, comentarios_respondidos):
            break
        else:
            # Hacer scroll si no se encuentran comentarios con palabras clave
            hacer_scroll_lento(driver, '//div[contains(@class, "css-1qjw4dg-DivContentContainer")]//div[contains(@class, "css-13if7zh-DivCommentContainer")]//div[contains(@class, "css-1qp5gj2-DivCommentListContainer")]')

except (TimeoutException, NoSuchElementException, ElementClickInterceptedException, NoSuchWindowException) as e:
    print(f"Error: {e}")
finally:
    input("Presiona Enter para cerrar el programa...")
    driver.quit()
if name == "main":
main()

Ya que al inicairlo me devuelve este error:C:\Users\rialj\OneDrive\Desktop\Negocios\tests>python test_065.py

DevTools listening on ws://127.0.0.1:52340/devtools/browser/da7419f2-8865-45d3-9056-8db91fd16cff
Created TensorFlow Lite XNNPACK delegate for CPU.
Attempting to use a delegate that only supports static-sized tensors with a graph that has dynamic-sized tensors (tensor#-1 is a dynamic-sized tensor).
[8988:6660:1218/142021.691:ERROR:registration_request.cc(291)] Registration response error message: DEPRECATED_ENDPOINT
Por favor, resuelve el captcha y presiona Enter para continuar...
Comentario encontrado: lucio-lucky
me intetesa lo del trading.cuanto tiempo lleva aprender.
6-25reply
68
view 7 replies
¿Deseas seguir buscando comentarios? (s/n): [8988:6660:1218/142049.243:ERROR:registration_request.cc(291)] Registration response error message: DEPRECATED_ENDPOINT
s
Presiona Enter para cerrar el programa...
Yo pongo para seguir buscando pero él no busca