Raspado web de selenio con Python

Selenium es un paquete disponible para Python que permite que Python interactúe directamente con un navegador web. Más allá de simplemente extraer texto o imágenes de la página, Selenium le permite a Python realizar tareas como: ingresar texto en los campos del formulario web, hacer clic en los botones de radio o hacer clic en los enlaces de texto para ir a otras páginas. Selenium incluso permitirá que Python ejecute JavaScript y tome capturas de pantalla.

Contenido

Empezando

Primero realice una instalación de pip desde la terminal o el símbolo del sistema (dependiendo de su sistema operativo).

A continuación, deberá descargar algunos controladores. En este blog, usaremos Chrome como navegador web. Para controlar Chrome con Selenium, deberá descargar el Chromedriver adecuado. El controlador de Chrome que elija debe coincidir o superar la versión de Chrome que se ejecuta actualmente en su máquina. Para encontrar su versión, vaya a Ayuda>Acerca de en cromo.

Una vez descargado, extráigalo y colóquelo en algún lugar donde pueda encontrarlo. Puse el mío en mi escritorio.

abrir una página web

Ahora usemos selenio para ir a una página web.

Texto Descripción generado automáticamente

Si bien podría simplemente importar selenio, asegurarse de importar elementos específicos del paquete garantiza que no esté masticando RAM con controladores y elementos innecesarios. Esta es solo una buena mejor práctica de programación.

Conductor – instanciar el controlador web abre un navegador Chrome controlado por Selenium.

Ahora, para navegar a una URL, simplemente necesitamos pasar la URL al conductor.get() método. En el siguiente ejemplo, paso la URL de la página de inicio de Udacity al .conseguir() método.

Logotipo Descripción generada automáticamente con nivel de confianza medio

Interfaz gráfica de usuario, aplicación Descripción generada automáticamente

Interactuar con una página

Para demostrar la interactividad de Selenium, usaré otro sitio web. Practice Test Automation tiene muchas páginas web excelentes para practicar. Vamos a ir a la página de inicio de sesión de Practice Test.

La página de inicio de sesión de prueba consta de algunos elementos interactivos: 2 cuadros de entrada (nombre de usuario y contraseña) y un botón Enviar.

Usando Selenium, podemos hacer que Python pase las credenciales a este sitio web. Primero, debemos aprender a identificar los elementos de la página web.

Identificar elementos de la página web

Un método fácil es hacer clic con el botón derecho en uno de los cuadros de entrada y seleccionar Inspeccionar en el menú emergente.

Debería aparecer una ventana emergente en el lado derecho del navegador web que le muestra el código HTML. (Sugerencia: a menudo encuentro que debo presionar inspeccionar dos veces para llegar al elemento correcto). Sabrá que está en el elemento correcto cuando pase el cursor sobre el código HTML y el cuadro de entrada se resalte en la página web.

En el caso de esta página, hay 3 elementos con los que estamos buscando trabajar. Los dos cuadros de entrada y el botón de enviar. Aquí hay un resumen rápido de lo que estamos usando aquí.

es la caja real con la que estamos buscando interactuar. Tenga en cuenta que el nombre de usuario tiene un tipo de entrada de «texto», mientras que la contraseña tiene un tipo de entrada de «contraseña». Eso significa que cuando escriba en el cuadro Nombre de usuario, verá texto claro, y cuando escriba en el cuadro de contraseña, obtendrá caracteres de enmascaramiento.

El último elemento es el este es el botón Enviar.

XPath

Una vez que conoce los elementos con los que desea trabajar, una de las formas más sencillas de identificar los elementos es a través de lo que se conoce como Xpath. XPath significa XML Path Language, y fue diseñado para permitir a los usuarios navegar fácilmente por documentos de estilo XML.

Para obtener su Xpath, simplemente haga clic derecho en uno de los elementos del árbol HTML, seleccione Copiar y luego Copiar Xpath.

Obtendrá algo similar a esto: //*[@id=”password”]

Esto sirve como una especie de «dirección» para el cuadro de entrada de contraseña.

.find_element_by_xpath()

Con XPaths, puede utilizar el .find_element_by_xpath() método. Después de encontrar el elemento, podemos usar el .send_keys() método para enviar el nombre de usuario y la contraseña.

Texto Descripción generado automáticamente

Para el botón de enviar, reunimos el Xpath de la misma manera que los cuadros de entrada, pero ahora vamos a usar el .hacer clic() método para interactuar con él.

Si tuvo éxito, ahora debería ver esto en su navegador.

Interfaz gráfica de usuario, texto, aplicación Descripción generada automáticamente

Tomar una captura de pantalla

Para mantener un registro de su inicio de sesión exitoso (o fallido), Selenium facilita tomar una captura de pantalla.

Logotipo Descripción generada automáticamente

Resumen

Selenium puede hacer mucho más de lo que se ve aquí. Con la adición de herramientas de análisis de HTML como Beautifulsoup, Selenium puede extraer texto, imágenes, gráficos y otros elementos de las páginas web. Es excelente para pruebas automatizadas e incluso viene con un método sin interfaz que permite que Selenium interactúe con páginas web en segundo plano sin tener que renderizar un navegador GUI. Para obtener más información sobre lo que Python y Selenium pueden hacer, consulte la página de documentación de Selenium.

Amplíe su conocimiento

¿Está interesado en ampliar sus habilidades con Python? Udacity ofrece una variedad de cursos de Python para cualquier nivel de habilidad. Recién comenzando, pruebe nuestra Introducción a la programación Nanodegree y aprenda los conceptos básicos de codificación. Ya tiene una base de codificación, pruebe nuestro programa de Nanogrado intermedio de Python para aprender temas y habilidades de Python más avanzados.

Deja una respuesta

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