En este artículo, aprenderemos cómo podemos dar me gusta a todas las imágenes de un perfil en Instagram sin desplazarnos y hacer clic manualmente en los botones. Usaremos Selenium para hacer esta tarea.
Paquetes/Software necesario:
1. Python 3
2. Chromedriver compatible con la versión de Chrome existente (descargar chromedriver)
3. Google Chrome
4. Paquete Selenium (pip install selenium), paquete bs4 (pip install bs4)
Paso #1: Importar módulos e ingresar la información de inicio de sesión junto con la URL de la página.
Python3
from bs4 import BeautifulSoup as bs import selenium.common.exceptions from selenium import webdriver import time from selenium.webdriver.common.keys import Keys print("enter username") username = input() print("enter password") password = input() print("enter the url") url = input()
Paso #2: Función para ingresar la ruta donde existe el archivo chromedriver.exe en su sistema
Python3
def path(): global chrome print("enter the driver path") exe_path = input() # starts a new chrome session chrome = webdriver.Chrome(executable_path = exe_path)
Paso #3: Función para ingresar la URL de la página
Python3
def url_name(url): # the web page opens up chrome.get(url) # webdriver will wait for 4 sec before throwing a # NoSuchElement exception so that the element # is detected and not skipped. time.sleep(4)
Paso #4: Función para ingresar su información de inicio de sesión
Python3
def login(username, your_password): # finds the login button log_but = chrome.find_element_by_class_name("L3NKy") time.sleep(2) # clicks the login button log_but.click() time.sleep(4) # finds the username box usern = chrome.find_element_by_name("username") # sends the entered username usern.send_keys(username) # finds the password box passw = chrome.find_element_by_name("password") # sends the entered password passw.send_keys(your_password) passw.send_keys(Keys.RETURN) time.sleep(6) notn = chrome.find_element_by_class_name("yWX7d")# dont save info button notn.click()# click don't save button time.sleep(3)
Paso #5: Función para abrir la primera imagen
Python3
def first_picture(): # finds the first picture pic = chrome.find_element_by_class_name("kIKUG") pic.click() # clicks on the first picture
Paso #6: Función para dar me gusta a una foto
Python3
def like_pic(): time.sleep(2) like = chrome.find_element_by_class_name('fr66n') soup = bs(like.get_attribute('innerHTML'),'html.parser') if(soup.find('svg')['aria-label'] == 'Like'): like.click() time.sleep(2)
Paso #7: Función para hacer clic en el botón Siguiente
Python3
def next_picture(): time.sleep(2) try: nex = chrome.find_element_by_class_name("coreSpriteRightPaginationArrow") time.sleep(1) return nex except selenium.common.exceptions.NoSuchElementException: return 0
Paso # 8: función que continúa dando me gusta a las imágenes hasta que no puede encontrar el siguiente botón
Python3
def continue_liking(): while(True): next_el = next_picture() # if next button is there then if next_el != False: # click the next button next_el.click() time.sleep(2) # like the picture like_pic() time.sleep(2) else: print("not found") break
Paso #9: Llamar a las funciones
Python3
path() time.sleep(1) url_name(url) login(username, password) first_picture() like_pic() continue_liking() chrome.close()
¡Ahí tienes! Al script le gustarán automáticamente todas las publicaciones hasta el final de la página.
Publicación traducida automáticamente
Artículo escrito por sayonighosh2601 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA