07-03-2021, 21:44
Saludos.
Vamos a utilizar python y selenium (que es una librería de python) para loguearnos y escribir un post en un foro, todo ello de manera automática.
El script está probado en este mismo foro y funciona perfectamente, aunque en el que se publica aquí he puesto una dirección ficticia.
Lo que vamos a necesitar es, además de tener python instalado, instalarnos la librería selenium
y tener el controlador geckodriver, lo podeís bajar de AQUÍ.
Este trabajo está hecho bajo entorno linux y hay que tener ciertas nociones de html porque selenium busca entre los tags para poder trabajar. Lo que busca son elementos por name, id, texto del enlace, texto parcial del enlace, xpath, CSS, tagname y Classname.
Voy a poner en script completo y luego iremos linea por linea.
Importamos webdriver de selenium
Importamos Time
Vamos a trabajar con Firefox y le decimos donde está el ejecutable geckodriver
Le decimos la página web a abrir
Buscamos un enlace que tenga el texto "Iniciar sesión" y que lo pulse
Esperamos 2 segundos a que se cargue la página de autentificación
En el formulario, la id de la caja de texto donde va el usuario es "quick_login_username" y le enviamos nuestro usuario
En el formulario, la id de la caja de texto donde va la contraseña es "quick_login_password" y le enviamos nuestra contraseña
En el formulario, el botón de enviar el name es "submit" y hacemos click en él
Esperamos 5 segundos a que la autentificación se realice y se vuelva a cargar la página
Vamos a postear un chiste, por lo que vamos a ir a la sección chistes, buscamos un enlace con el texto "Chistes" y hacemos click en él
Esperamos 2 segundos a que se cargue la sección chistes
El botón para crear un nuevo hilo es una class con el nombre "new_thread_button" lo buscamos y hacemos click en él
Esperamos 5 segundos a que se cargue la caja para hacer los post
En la caja para hacer posts, la caja de texto para poner el título del post tiene el name "subject", lo buscamos y enviamos el título
El post en si está en un iframe, lo buscamos por el path, que puede ser absoluto o relativo (es este caso relativo), y le enviamos el texto
Hacemos click en el botón de envío cuyo name es submit
Esperamos 2 segundos para que se realice la grabación del post
Y cerramos el navegador y la aplicación
Con esto habremos conseguido identificarnos y realizar un post.
Saludos.
Vamos a utilizar python y selenium (que es una librería de python) para loguearnos y escribir un post en un foro, todo ello de manera automática.
El script está probado en este mismo foro y funciona perfectamente, aunque en el que se publica aquí he puesto una dirección ficticia.
Lo que vamos a necesitar es, además de tener python instalado, instalarnos la librería selenium
Código:
sudo pip install selenium
y tener el controlador geckodriver, lo podeís bajar de AQUÍ.
Este trabajo está hecho bajo entorno linux y hay que tener ciertas nociones de html porque selenium busca entre los tags para poder trabajar. Lo que busca son elementos por name, id, texto del enlace, texto parcial del enlace, xpath, CSS, tagname y Classname.
Voy a poner en script completo y luego iremos linea por linea.
Código:
#!/usr/bin/env python
from selenium import webdriver
import time
driver = webdriver.Firefox(executable_path='/home/chujalt/geckodriver')
driver.get('https://paginaweb.com')
link = driver.find_element_by_link_text('Iniciar sesión').click()
time.sleep(2)
driver.find_element_by_id('quick_login_username').send_keys("Pepito")
driver.find_element_by_id('quick_login_password').send_keys("contraseña_de_Pepito")
driver.find_element_by_name('submit').click()
time.sleep(5)
driver.find_element_by_link_text('Chistes').click()
time.sleep(2)
driver.find_element_by_class_name('new_thread_button').click()
time.sleep(5)
driver.find_element_by_name('subject').send_keys("Chiste de Pepito")
driver.find_element_by_xpath("//iframe").send_keys("Hola, este es mi primer chiste")
driver.find_element_by_name('submit').click()
time.sleep(2)
driver.close()
Importamos webdriver de selenium
Código:
from selenium import webdriver
Importamos Time
Código:
import time
Vamos a trabajar con Firefox y le decimos donde está el ejecutable geckodriver
Código:
driver = webdriver.Firefox(executable_path='/home/chujalt/geckodriver')
Le decimos la página web a abrir
Código:
driver.get('https://paginaweb.com')
Buscamos un enlace que tenga el texto "Iniciar sesión" y que lo pulse
Código:
link = driver.find_element_by_link_text('Iniciar sesión').click()
Esperamos 2 segundos a que se cargue la página de autentificación
Código:
time.sleep(2)
En el formulario, la id de la caja de texto donde va el usuario es "quick_login_username" y le enviamos nuestro usuario
Código:
driver.find_element_by_id('quick_login_username').send_keys("Pepito")
En el formulario, la id de la caja de texto donde va la contraseña es "quick_login_password" y le enviamos nuestra contraseña
Código:
driver.find_element_by_id('quick_login_password').send_keys("contraseña_de_Pepito")
En el formulario, el botón de enviar el name es "submit" y hacemos click en él
Código:
driver.find_element_by_name('submit').click()
Esperamos 5 segundos a que la autentificación se realice y se vuelva a cargar la página
Código:
time.sleep(5)
Vamos a postear un chiste, por lo que vamos a ir a la sección chistes, buscamos un enlace con el texto "Chistes" y hacemos click en él
Código:
driver.find_element_by_link_text('Chistes').click()
Esperamos 2 segundos a que se cargue la sección chistes
Código:
time.sleep(2)
El botón para crear un nuevo hilo es una class con el nombre "new_thread_button" lo buscamos y hacemos click en él
Código:
driver.find_element_by_class_name('new_thread_button').click()
Esperamos 5 segundos a que se cargue la caja para hacer los post
Código:
time.sleep(5)
En la caja para hacer posts, la caja de texto para poner el título del post tiene el name "subject", lo buscamos y enviamos el título
Código:
driver.find_element_by_name('subject').send_keys("Chiste de Pepito")
El post en si está en un iframe, lo buscamos por el path, que puede ser absoluto o relativo (es este caso relativo), y le enviamos el texto
Código:
driver.find_element_by_xpath("//iframe").send_keys("Hola, este es mi primer chiste")
Hacemos click en el botón de envío cuyo name es submit
Código:
driver.find_element_by_name('submit').click()
Esperamos 2 segundos para que se realice la grabación del post
Código:
time.sleep(2)
Y cerramos el navegador y la aplicación
Código:
driver.close()
Con esto habremos conseguido identificarnos y realizar un post.
Saludos.