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.

Scrapear Seguidores en Twitter
5 (100%) 2 votes

Deja un comentario

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