Automatice el llenado de formularios web con Python y Selenium
Hoy en día todo el mundo quiere obtener algunos datos de usted, por lo que para crear una nueva cuenta, participar en un sorteo u obtener un libro electrónico gratuito, debe completar su información en un formulario.
Esto no es un gran problema si lo hace solo una vez, pero las cosas se vuelven tediosas cuando tiene que repetir los mismos pasos una y otra vez, por lo que la mejor solución es automatizarlo con Python.
Automaticemos el llenado de formularios web con Python. Primero, veremos cómo completar un formulario con datos que creamos en una lista de Python, y luego le mostraré cómo generar datos falsos para completar múltiples formularios.
Cómo automatizar el llenado de formularios web con Python
Para automatizar formularios web con Python, usaremos una biblioteca llamada Selenium. Siga las instrucciones a continuación para instalarlo.
Nota: Todos los métodos de Selenium que vamos a aprender en esta guía se pueden encontrar en mi Hoja de trucos de automatización ( PDF gratuito )
1. Instalar selenio
Para instalar Selenium, abra una terminal y ejecute el siguiente comando.
pip instalar selenio
Eso instalará Selenium 4, que es la versión que usaremos para este tutorial.
Luego necesitamos descargar chromedriver:
- Verifique su versión de Google Chrome (en Chrome, haga clic en tres puntos, haga clic en "ayuda" y luego seleccione "acerca de Google Chrome")
- Descargue el Chromedriver correcto aquí (después de cualquier actualización de Chrome, debe descargar el archivo Chromedriver nuevamente)
- Descomprima el controlador y copie la ruta donde está dejando el archivo Chromedriver.
Rellenar formularios de Google
Importemos las bibliotecas que usaremos para esta automatización.
from selenium import webdriver
from selenium.webdriver.chrome.service import Tiempo de importación del servicio
Luego creamos un path
lugar donde se encuentra nuestro archivo chromedriver, website
que vamos a automatizar y driver
que nos ayudará a interactuar con el sitio web a través de Selenium.
Sitio web : para esta demostración simple, vamos a utilizar una plantilla básica llamada "Información de contacto" de Google Form que puede encontrar aquí . Copia el enlace.
En caso de que el enlace deje de funcionar, vaya a Formularios de Google y seleccione la plantilla a continuación para generar el formulario y obtener su propio enlace.

Nota: si crea su propio formulario, asegúrese de desactivar la opción "Limitar a 1 respuesta" dentro de Configuración, para que podamos completar tantos formularios como queramos.
Aquí están las variables que creamos para comenzar a trabajar con Selenium.
path = '/Users/.../chromedriver' # pegue su ruta aquí
service = Service(executable_path=path)
website = 'https://forms.gle/GRgxTrG8FfXUCLE99' # pegue su enlace
driver = webdriver.Chrome(service= Servicio)
Después de esto, abrimos el sitio web con Selenium usando el driver.get()
conductor.get(sitio web)
Además, agregamos una espera, por lo que dejamos que el sitio web cargue toda la información. Para ello, importamos el time
módulo.
tiempo de importación
time.sleep(3)
En este punto, el código debería verse así:
Ahora, para completar la información con Selenium, debemos inspeccionar el sitio web. Inspeccionemos el campo "Nombre". Para hacerlo, haga clic derecho en cualquier sección en blanco en el primer bloque y haga clic en "Inspeccionar".

Las herramientas del desarrollador se abrirán con el documento HTML del sitio web.
Independientemente de qué elemento esté resaltado en su computadora, vamos a usar el que tiene el data-params
nombre de atributo porque dentro está el nombre del campo (por ejemplo, Nombre, Correo electrónico, Dirección, Número de teléfono, Comentarios).

Ahora vamos a crear el XPath del campo "Nombre". Aquí está la sintaxis de un XPath:

Además de eso, también usamos la contains()
función, por lo que nuestro XPath será:
//div[contiene(@parámetros de datos, "Nombre")]
Ahora tenemos que inspeccionar el campo donde se encuentra el marcador de posición "Tu respuesta".
A diferencia de la mayoría de los sitios web, Google Form sigue un patrón inconsistente, algunos campos como "Correo electrónico" tienen la <input>
etiqueta, mientras que otros campos como "Dirección" tienen la <textarea>
etiqueta.

El XPath final del campo con el marcador de posición "Tu respuesta" variará para aquellos con la etiqueta <input>
y .<textarea>
//div[contiene(@parámetros de datos, "Nombre")]//área de texto //div[contiene(@parámetros de datos, "Nombre")]//entrada
Para juntarlos usamos el condicional “o”|
//div[contiene(@parámetros de datos, "Nombre")]//área de texto | //div[contiene(@parámetros de datos, "Nombre")]//entrada
Ahora usamos .find_element
y .send_keys
para completar los datos.
Cree una lista con datos y complete todos los campos
Hay diferentes bibliotecas de Python faker
que pueden ayudarnos a generar datos falsos para nosotros (te mostraré cómo faker
funciona al final), pero para mantener esto simple, generemos datos en una lista nosotros mismos y luego colóquelos en un diccionario.
campos = ['Nombre', 'Email', 'Dirección', 'Número de teléfono', 'Comentarios']
datos = ['Frank', 'frank@example.com', '123 St', '987654321', 'Hola Mundo']my_form = dict ( zip (campos, datos))
Ahora para llenar estos datos en todos los campos de nuestro formulario ponemos el .find_element
y .send_keys
dentro de un bucle for.
Enviar el formulario
Finalmente, tenemos que hacer clic en el botón “Enviar”.

Para hacer clic en "Enviar" con Selenium, inspeccionamos el botón para crear su XPath y luego usamos el .click
método para hacer clic en él.
Nota: si tiene su navegador en otro idioma, probablemente el valor dentro del text()
atributo estaría en ese idioma. Por ejemplo, mi navegador está en español entonces tengo que cambiar parte del XPath a //span[text()=”Enviar”]
.
Aquí está el código que hemos escrito hasta ahora.
¡Felicidades! Ahora ya sabes cómo rellenar formularios web. Ahora puede llevar esto al siguiente nivel enviando cientos de formularios con datos falsos.
Cree datos falsos y envíe cientos de formularios
Ahora que conoce los conceptos básicos, puede saltar al minuto 13:26 de mi video a continuación para aprender cómo generar datos falsos y enviar cientos de formularios con Python.
Comentarios
Publicar un comentario