es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo extraer todos los seguidores de Twitter utilizando Selenium?

Estoy intentando scrapear todos los seguidores de Twitter de mi perfil y luego guardarlos en un archivo de texto, pero no sé dónde buscar para hacer esto de manera efectiva ya que soy principiante en Python.

¿Qué estoy haciendo mal? 🙁

Ver aquí. Esto es lo que quiero scrapear.

Este es el código:

last_height = driver.execute_script("return document.body.scrollHeight")
while True:
    # Scroll down to bottom
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    # Wait to load page
    sleep(5)
    # Calculate new scroll height and compare with last scroll height
    new_height = driver.execute_script("return document.body.scrollHeight")
    if new_height == last_height:
        break
    last_height = new_height



    for twusernames in driver.find_elements_by_xpath('//div[@aria-label="Timeline: Followers"]//a[@role="link"]'):
        print(twusernames.get_property('href'))
        file = open("usernames.txt", "a")
        file.write(twusernames.get_property('href'))
        file.write("\n")
        file.close()

Entonces lo que hace es – se desplaza hacia abajo para cargar los nuevos seguidores y luego los scrapea, pero está desordenado. También captura otros enlaces innecesarios y se pierde algunos seguidores.

Gracias por la ayuda.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Estimado usuario,

    Gracias por contactarnos. Parece que hay algunos problemas con tu código. Permíteme ayudarte.

    En primer lugar, para extraer todos los seguidores de Twitter de tu perfil, debes asegurarte de iniciar sesión en tu cuenta de Twitter utilizando driver.get('https://twitter.com/login'). Una vez que hayas iniciado sesión, puedes navegar a tu perfil utilizando driver.get('https://twitter.com/tu_nombre_usuario'). Esto cargará tu página de perfil, donde deseas extraer tus seguidores.

    A continuación, necesitas localizar el elemento que contiene tus seguidores. Según tu captura de pantalla, parece que el elemento es aquel con aria-label="Seguidores". Puedes utilizar el siguiente código para localizar este elemento:

    boton_seguidores = driver.find_element_by_xpath('//a[@href="/tu_nombre_usuario/followers"]')
    cantidad_seguidores = int(boton_seguidores.find_element_by_xpath('span[@class="css-901oao css-16my406 r-poiln3 r-bcqeeo r-qvutc0"]/span').text)
    boton_seguidores.click()
    

    Este código encuentra el botón “Seguidores” en tu perfil, recupera el número de seguidores del texto dentro de este botón y hace clic en él para cargar la ventana emergente de seguidores.

    Una vez que hayas localizado el elemento que contiene a todos tus seguidores, puedes recorrerlos en un bucle para extraer sus nombres de usuario y agregarlos a un archivo de texto. Sin embargo, parece que ya estás haciendo esto, así que solo necesitas actualizar tu expresión XPath para que sea más específica. Intenta utilizar el siguiente código para extraer tus seguidores:

    lista_usuarios = driver.find_element_by_xpath('//div[@aria-label="Seguidores"]/div[@role="dialog"]/div[2]')
    usuarios = lista_usuarios.find_elements_by_xpath('.//div[@dir="ltr"]/span')
    
    for usuario in usuarios:
        nombre_usuario = usuario.text
        archivo = open('nombres_usuarios.txt', 'a')
        archivo.write(nombre_usuario)
        archivo.write('\n')
        archivo.close()
    

    Este código localiza el div con aria-label="Seguidores" y luego estrecha la búsqueda para incluir solo los elementos dentro del div que tienen el atributo role="dialog". Una vez que tengas este elemento, puedes extraer todos los nombres de usuario buscando elementos con la etiqueta dir="ltr" y span.

    Espero que esto te ayude a solucionar los problemas con tu código. Avísame si tienes alguna otra pregunta.

    Saludos cordiales,
    Experto en IT.

Comments are closed.