Scrapear Seguidores en Twitter

Aprenderemos extraer toda la lista de seguidores de cualquier usuario en Twitter con un Bot, usaremos Python y Selenium. Si quieres saber como hacerlo pues sigue leyendo.

Requisitos:

  • Saber Python básicamente
  • Entender XPATH
  • Tener Python 3

1. Primero creamos una carpeta en la que tienen que haber 3 archivos:

  • Scrap followers twitter.py, pueden descargar el código en mi git.
  • Chromedriver.exe : Se utiliza para hacer automatizaciones con Google Chrome. Lo pueden descargar aquí.
  • PASSWORD.TXT: Donde agregaremos la contraseña de nuestra cuenta de Twitter.

2. Con el siguiente fragmento de código se automatiza el proceso de Iniciar Sesión en Twitter, lo explico a continuación:

def get_followers(user_followers):
    #Asignamos credenciales
    MY_SCREEN_NAME = 'hostingeconomic'
    MY_PASSWORD = open("mypassword.txt").read().strip()
    #Asignamos el Chromedriver para que ejecute la automatizacion
    driver = webdriver.Chrome(executable_path=r"chromedriver.exe")
    #Entramos al Login
    driver.get("https://twitter.com/login")
    #Ingresamos el Usuario y Contraseña
    el = driver.find_element_by_css_selector("#page-container > div > div.signin-wrapper > form > fieldset > div:nth-child(2) > input")
    el.send_keys(MY_SCREEN_NAME)
    driver.find_element_by_css_selector("#page-container > div > div.signin-wrapper > form > fieldset > div:nth-child(3) > input").send_keys(MY_PASSWORD, Keys.ENTER)

3. Con este fragmento de código, función «scroll_down» logramos entrar al apartado de Followers del perfil que queremos extraer sus seguidores y mediante un bucle comienza a hacer scroll hasta cargar todos los usuarios.

def scroll_down(driver):
    """Un metodo para hacer scroll a una página web."""
    # Get scroll height.
    last_height = driver.execute_script("return document.body.scrollHeight")
    while True:
        # Scroll down to the bottom.
        driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
        # Wait to load the page.
        time.sleep(2)
        # 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

4. Tenemos el script completo, como resultado nos da la lista de seguidores del usuario que hemos buscado:

from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys

def scroll_down(driver):
    """Un metodo para hacer scroll a una página web."""
    # Get scroll height.
    last_height = driver.execute_script("return document.body.scrollHeight")
    while True:
        # Scroll down to the bottom.
        driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
        # Wait to load the page.
        time.sleep(2)
        # 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


def get_followers(user_followers):
    #Asignamos credenciales
    MY_SCREEN_NAME = 'hostingeconomic'
    MY_PASSWORD = open("mypassword.txt").read().strip()
    #Asignamos el Chromedriver para que ejecute la automatizacion
    driver = webdriver.Chrome(executable_path=r"chromedriver.exe")
    #Entramos al Login
    driver.get("https://twitter.com/login")
    #Ingresamos el Usuario y Contraseña
    el = driver.find_element_by_css_selector("#page-container > div > div.signin-wrapper > form > fieldset > div:nth-child(2) > input")
    el.send_keys(MY_SCREEN_NAME)
    driver.find_element_by_css_selector("#page-container > div > div.signin-wrapper > form > fieldset > div:nth-child(3) > input").send_keys(MY_PASSWORD, Keys.ENTER)
    #Entrar a la seccion de Seguidores
    link_seguidores = 'https://twitter.com/{}/followers?lang=es'.format(user_followers)
    driver.get(link_seguidores)
    time.sleep(1)
    #Hacemos Scroll a la página hasta que ya no hayan más seguidores
    scroll_down(driver)
    #Pintamos en consola todos los usuarios
    user = driver.find_elements_by_css_selector('div.ProfileCard-userFields > span > a > span > b')
    for a in user:
        print(str(a.text))
    print("el numero de usuarios es : ", len(user))

get_followers('rorolas_')

En el siguiente video puedes observar el bot en funcionamiento:

Link del git: https://github.com/ronaldohernandez/scrape-followers-twitter-python

Como puedes ver, hacer automatizaciones no es cosa del otro mundo, con un poco de práctica y experimentación aprenderás cosas muy chulas. Hasta aquí el post de hoy, cualquier pregunta en los comentarios.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.