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.