Aquí, en este artículo, vamos a discutir cómo desplazarse hacia abajo en la ventana emergente de seguidores en Instagram usando Python. Con el selenium, automatizaremos nuestros navegadores y realizaremos la automatización en el sitio web social de Instagram. Antes de pasar a la implementación práctica, necesitamos instalar la Biblioteca Selenium usando el comando pip.
Instalación:
pip install Selenium
Ahora, vamos a comprobar si nuestro selenium está instalado o no. Si el siguiente comando no dio ningún error, eso significa que el selenium se instaló correctamente.
Python3
import selenium print(selenium.__version__)
Producción:
3.141.0
Acercarse:
Ahora, analicemos el enfoque de cómo podemos realizar la funcionalidad de desplazamiento hacia abajo. Usando el bucle while, nos desplazaremos hacia abajo en la ventana emergente de seguidores hasta que nuestro programa llegue al último seguidor. Primero, automatizaremos el proceso de inicio de sesión con nuestra identificación de inicio de sesión y contraseña y luego iremos a la página de Instagram de GeeksforGeeks. Haga clic en el botón del seguidor y luego realice la operación de desplazamiento hacia abajo en la ventana emergente.
- Primero, necesitamos importar el módulo de tiempo y todas las clases o métodos necesarios de la biblioteca de Selenium .
- Instalación de Chrome Web Driver a través del cual realizaremos todas las tareas en Chrome Web Browser. Al igual que Chrome, podemos instalar cualquier otro navegador como Edge, IE, Firefox y muchos más.
driver = webdriver.Chrome(ChromeDriverManager().install())
Usando la línea anterior, no requerimos tener ningún controlador físico presente en nuestro sistema. Esta línea instalará automáticamente el controlador web de Chrome necesario mediante la web.
- Abra el sitio web utilizando el objeto del controlador y el método get() con la URL dada.
driver.get("http://www.instagram.com")
- WebDriverWait también se llama espera explícita . La espera explícita es un código que define esperar a que ocurra una determinada condición antes de continuar. en este código, con la ayuda de CSS_SELECTOR , encontraremos los campos de nombre de usuario y contraseña para iniciar sesión.
nombre de usuario = WebDriverWait(controlador, 10).hasta(EC.element_to_be_clickable((By.CSS_SELECTOR, “input[name=’username’]”)))
contraseña = WebDriverWait(controlador, 10).hasta(EC.element_to_be_clickable((By.CSS_SELECTOR, “input[name=’password’]”)))
- Ahora, antes de poner el nombre de usuario y la contraseña en el campo seleccionado, primero borre los campos de nombre de usuario y contraseña usando el método clear(). Luego, coloque el valor de nombre de usuario y contraseña usando el método send_keys() .
username.clear() username.send_keys("<Enter_Your_Username") password.clear() password.send_keys("<Enter_Your_Password>")
- Haga clic en el botón Iniciar sesión usando CSS_SELECTOR .
button = WebDriverWait(driver, 2).hasta(EC.element_to_be_clickable((By.CSS_SELECTOR, “button[type=’submit’]”))).click()
- Hemos terminado con el inicio de sesión de Instagram. Ahora, podemos abrir la URL de nuestro perfil de destino en el que realizaremos el desplazamiento.
driver.get("https://www.instagram.com/geeks_for_geeks/followers/")
Aquí, en esta implementación práctica, estamos usando la ventana emergente de seguidores de geeksforgeeks para desplazarse.
- Haga clic en el botón de seguidores usando el método find_element_by_partial_link_text .
- Encuentre el elemento de la ventana emergente de una página web usando XPATH. En la ventana emergente, usaremos un bucle while para realizar el desplazamiento hasta que el programa llegue a los últimos seguidores. Es por eso que siempre tomamos nuestro bucle como VERDADERO.
- Finalmente, una vez que hayamos terminado con nuestra tarea. Usaremos el método quit() para cerrar los recursos.
A continuación se muestra la implementación completa:
Python3
import time from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.wait import WebDriverWait from webdriver_manager.chrome import ChromeDriverManager from selenium.webdriver.support import expected_conditions as EC from webdriver_manager.microsoft import EdgeChromiumDriverManager driver = webdriver.Chrome(ChromeDriverManager().install()) # open the webpage driver.get("http://www.instagram.com") # target username username = WebDriverWait( driver, 10).until(EC.element_to_be_clickable( (By.CSS_SELECTOR, "input[name='username']"))) # target Password password = WebDriverWait( driver, 10).until(EC.element_to_be_clickable( (By.CSS_SELECTOR, "input[name='password']"))) # enter username and password username.clear() username.send_keys("<Enter_Your_Username>") password.clear() password.send_keys("<Enter_Your_Password>") # target the login button and click it button = WebDriverWait( driver, 2).until(EC.element_to_be_clickable( (By.CSS_SELECTOR, "button[type='submit']"))).click() time.sleep(5) driver.get("https://www.instagram.com/geeks_for_geeks/followers/") driver.find_element_by_partial_link_text("follower").click() pop_up_window = WebDriverWait( driver, 2).until(EC.element_to_be_clickable( (By.XPATH, "//div[@class='isgrP']"))) # Scroll till Followers list is there while True: driver.execute_script( 'arguments[0].scrollTop = arguments[0].scrollTop + arguments[0].offsetHeight;', pop_up_window) time.sleep(1) driver.quit()
Producción:
Publicación traducida automáticamente
Artículo escrito por shubhanshuarya007 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA