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.