Cómo creé un Python Bot para iniciar sesión automáticamente en un portal cautivo

Un tutorial de Python paso a paso para crear un bot de inicio de sesión

Hoy en día Internet no es un privilegio, es una necesidad. Dondequiera que vayamos, requerimos una conexión constante a Internet mediante una red Wi-Fi o de datos móviles.

Imagine que nos incorporamos a una nueva universidad u organización que nos proporciona Internet a través de Wi-Fi. La organización podría implementar una página de inicio de sesión muy común para la autenticación de sus usuarios llamada portal cautivo (también conocido como jardín amurallado ).

Un portal cautivo se utiliza por varias razones.

  • Son utilizados por universidades y organizaciones para restringir la cantidad de dispositivos que están conectados a la red Wi-Fi desde una cuenta / persona.
  • Se implementan para proporcionar acceso a servicios que requieren autenticación, pago u otras credenciales válidas que tanto el proveedor de servicios como el usuario aceptan adherirse.

Hay una serie de razones y beneficios para usar un portal cautivo, pero de eso no se trata esta publicación.

Mi empresa había implementado un portal cautivo en el que los usuarios debían iniciar sesión para poder acceder a Internet. Inmediatamente después de conectarme a la red inalámbrica, mi navegador solía abrir la página del portal cautivo y necesitaba ingresar mi nombre de usuario y contraseña, después de lo cual pude acceder a Internet. Pero había un problema.

Aunque implementar un portal cautivo es bueno para la protección contra el acceso no autorizado a Internet, la identificación del tráfico y la gestión de usuarios, tiene una conexión controlada a cada dispositivo para garantizar que todos los usuarios tengan el acceso adecuado. Un portal cautivo puede,

  • Controla el número de terminales por usuario
  • Controle el consumo de ancho de banda y / o la velocidad de descarga por sesión
  • Restrinja el tipo de tráfico permitido e incluso especifique la duración del tiempo de espera de la sesión

Debido a estas restricciones, si pongo mi sistema en suspensión o permanezco inactivo por más de unos minutos, mi sistema se desconecta de la red. Por lo tanto, después de exceder el tiempo de inactividad, tuve que volver a iniciar sesión.

Al ser un desarrollador de software que requiere conectividad constante y en movimiento a Internet en mi sistema, tuve que ingresar mi nombre de usuario y contraseña una y otra vez, lo que lo hacía muy engorroso.

¿Qué pasa si, después de cerrar la sesión, pudiera iniciar sesión en el portal cautivo con solo hacer clic en un botón / icono en mi sistema?

¡Debería ser factible! No es necesario ingresar un nombre de usuario y luego una contraseña que en la mayoría de los casos debe tener 8 caracteres y debe tener al menos una letra mayúscula bla, bla, bla. Veamos cómo podemos hacer eso.

Implementación

Incluso si eres un novato en programación, debería ser bastante fácil. Lo he codificado en el lenguaje de programación Python. Python se puede descargar aquí, y también necesitamos Selenium que se puede descargar aquí. También puede pip install selenium(recomendado).

Ahora echemos un vistazo al código.

Después de importar las bibliotecas necesarias, necesitamos especificar las siguientes variables dentro del código.

Déjame explicarte esto ahora

  • El enlace del sitio web no es más que el enlace de la página de inicio de sesión o el enlace del portal cautivo contra el cual un usuario se autenticaría
  • u nombre de usuario y contraseña es lo que ingresa para iniciar sesión
  • element_for_username, element_for_password, element_for_submit son los nombres del elemento en el código HTML de la página de inicio de sesión

Déjame mostrarte cómo encontrarlos.

Como en la figura de arriba,

  • Abra Inspect Element dependiendo de su navegador.
  • Busque el elemento HTML y copie el nombre de la etiqueta de entrada (en el ejemplo anterior, su nombre de usuario ).
  • Haga lo mismo para averiguar el elemento HTML de la contraseña y el botón enviar también.
  • Estas cadenas serán el valor de su element_for_username, element_for_password, element_for_submit.

¡La mayor parte del trabajo está hecho!

Nota: Trabajo en macOS, así que implementaré el bot para Safari. Para Chrome y otros, use Chrome a través de chromedriver.

Copie este código con el resto del código y guárdelo como Python (archivo .py). Ejecute el archivo usando python script.py. Verá que el navegador abre automáticamente la página de inicio de sesión, ingresa los detalles y la envía. Ya ni siquiera tienes que escribir el nombre de usuario y la contraseña. ¿No es genial?

Nota: El código completo está disponible en GitHub.

Usar Automator en macOS para crear una aplicación (opcional)

En macOS, puede crear una aplicación que pueda seguir un conjunto específico de flujos de trabajo para cualquier tarea que se realice repetidamente.

En esta sección, explicaré cómo convertir el script de Python anterior en una aplicación automática. Esto permitirá al usuario iniciar sesión en el portal cautivo y simplemente hacer clic en el archivo de la aplicación del automatizador.

Ahora veamos los pasos para implementar esto:

Paso 1: Abra Automator . Cree un nuevo servicio o Archivo & g t; Nuevo > S ervicio

Paso 2: Agregue una acción " Ejecutar script de Shell ", configurando Shell: a / bin / bash y Pasar input: a como argumentos .

Paso 3: Ahora agregue el código bash como se muestra a continuación. Guarde el archivo en el escritorio.

Paso 4: Haz clic en el archivo y ¡voilà!

Encontrar una solución a un problema tan simple como escribir algo como las credenciales de inicio de sesión repetidamente se puede hacer fácilmente. Una vez que sepa cuál es el enunciado del problema, encontrar la solución es más fácil. Espero que esta publicación te haya dado una idea de cómo funcionan Selenium y Python y cómo crear un bot de Python es fácil.