Python | Automatización de la publicación de feliz cumpleaños en Facebook usando Selenium

Como sabemos, Selenium es una herramienta utilizada para controlar los navegadores web a través de un programa. Se puede usar en todos los navegadores, sistemas operativos y su programa está escrito en varios lenguajes de programación, es decir, Java, Python (todas las versiones). 

Selenium nos ayuda a automatizar cualquier tipo de tarea que hacemos con frecuencia en nuestras computadoras portátiles, PC, desde usar Facebook Messenger para enviar mensajes de texto y WhatsApp también, twittear tweets diariamente en Twitter, desearles a los amigos «Feliz cumpleaños» en Facebook, buscar en Google cualquier cosa que queramos aprender, y muchas tareas más. Todas estas tareas se pueden automatizar usando selenium en solo una pequeña implementación.

Instalación: 

  • Vaya al símbolo del sistema y ponga esto en:
pip install selenium

Aprendamos cómo automatizar el proceso de desear un deseo de cumpleaños en la línea de tiempo de un amigo de Facebook como una publicación.

Todo el proceso de esta automatización se puede dividir de la siguiente manera: 

  • Inicie sesión en la aplicación de Facebook utilizando credenciales como nombre de usuario y contraseña.
  • Publicar un feed de «Feliz cumpleaños» en la línea de tiempo de aquellos amigos cuyo cumpleaños es hoy.

A continuación se muestran los pasos: 

  • Cree un objeto de navegador y use la función get() para enviar una solicitud al sitio web que queremos conectar/usar.
  • Encuentre los elementos como los cuadros de entrada de nombre de usuario y contraseña, el botón de inicio de sesión y use las funciones de Selenium como click(), send_keys(), etc. para hacer clic en los botones e ingresar el nombre de usuario y la contraseña respectivamente.
  • Después de eso, use la función get() para enviar una solicitud a la página /eventos/cumpleaños/.
  • En la parte superior de esta página, hay una tarjeta de «Cumpleaños de hoy» que muestra el nombre de un amigo cuyo cumpleaños es hoy junto con un cuadro de texto de entrada para ingresar cualquier fuente en su línea de tiempo.
  • Usando el XPATH de estos cuadros de texto de entrada, enviaremos nuestro feed, es decir, «Feliz cumpleaños» usando la función send_keys() de Selenium.
  • Cierra el navegador.

NOTA: Cree un archivo test.txt por separado e ingrese su contraseña de Facebook antes de ejecutar el siguiente programa.

A continuación se muestra la implementación:  

Python3

# importing necessary classes
# from different modules
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.options import Options
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.keys import Keys
import time
 
chrome_options = webdriver.ChromeOptions()
 
prefs = {"profile.default_content_setting_values.notifications": 2}
chrome_options.add_experimental_option("prefs", prefs)
browser = webdriver.Chrome("chromedriver.exe")
 
# open facebook.com using get() method
browser.get('https://www.facebook.com/')
 
# user_name or e-mail id
username = "agrawal.abhi108@gmail.com"
 
# getting password from text file
with open('test.txt', 'r') as myfile:
    password = myfile.read().replace('\n', '')
 
print("Let's Begin")
 
element = browser.find_elements_by_xpath('//*[@id ="email"]')
element[0].send_keys(username)
 
print("Username Entered")
 
element = browser.find_element_by_xpath('//*[@id ="pass"]')
element.send_keys(password)
 
print("Password Entered")
 
# logging in
log_in = browser.find_elements_by_id('loginbutton')
log_in[0].click()
 
print("Login Successful")
 
browser.get('https://www.facebook.com/events/birthdays/')
 
feed = 'Happy Birthday !'
 
element = browser.find_elements_by_xpath("//*[@class ='enter_submit\
       uiTextareaNoResize uiTextareaAutogrow uiStreamInlineTextarea\
                  inlineReplyTextArea mentionsTextarea textInput']")
 
cnt = 0
 
for el in element:
    cnt += 1
    element_id = str(el.get_attribute('id'))
    XPATH = '//*[@id ="' + element_id + '"]'
    post_field = browser.find_element_by_xpath(XPATH)
    post_field.send_keys(feed)
    post_field.send_keys(Keys.RETURN)
    print("Birthday Wish posted for friend" + str(cnt))
 
# Close the browser
browser.close()

Publicación traducida automáticamente

Artículo escrito por VarunNayal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *