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:

[code lang=»python»]
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)
[/code]

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.

[code lang=»python»]
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
[/code]

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

[code lang=»python»]
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_’)
[/code]

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.