Saltar al contenido

Raspando páginas web dinámicas con pitón y selenio

Hemos visto lo sencillo que es poner en marcha el Selenio, a continuación veremos cómo navegar por una página web y, de hecho, por un sitio web completo utilizando los comandos de navegación. Como humanos, cuando queremos realizar una tarea en una página web, identificamos lo que queremos hacer visualmente, como arrastrar y soltar, desplazarse, hacer clic en un botón, etc. Luego movemos el ratón y hacemos clic, o usamos el teclado, según sea el caso. Las cosas no son tan simples (¡todavía!) con el Selenio, así que tenemos que darle un poco de ayuda. Para navegar por una página web, necesitamos decirle a Selenio con qué objetos de la página interactuar. Lo hacemos identificando los elementos de la página con XPaths y luego llamando a las funciones apropiadas para la tarea que deseamos llevar a cabo.

En el caso de nuestro primer ejemplo, el cuadro de búsqueda, hicimos lo siguiente:

Raspando páginas web dinámicas con pitón y selenio
Raspando páginas web dinámicas con pitón y selenio
  • Le encargó al conductor que encontrara un elemento del navegador llamado $0027q$0027.
  • Dio la instrucción de enviar una serie de personajes al elemento identificado.
  • Dio la instrucción de enviar un comando clave para $0027RETURN$0027.

Esto era el equivalente a nosotros como humanos, haciendo clic en el cuadro de búsqueda, introduciendo el término de búsqueda, y pulsando RETURN o ENTER en nuestro teclado.

Por lo tanto, el patrón de navegación en el Selenio es:

  • Identifique el elemento con el que desea interactuar.
  • Interactúe según sea necesario (establezca algún texto, extraiga un valor, envíe una pulsación de tecla, etc.).

Los elementos pueden ser localizados usando xPath $0027driver.find_element_by_xpath$0027, o métodos de más alto nivel como $0027find_element_by_id$0027.

12345<inputtype="text" name="searchbox"/>element = driver.find_element_by_id("someUniqueId")element = driver.find_element_by_name("searchbox")element = driver.find_element_by_xpath("//input[@id=$0027someUniqueId$0027]")

pitón

El envío de instrucciones de interacción, como el ajuste de texto, la selección de una caja de radio y la pulsación de «RETURN» (en el teclado), se puede lograr mediante el método de «teclas de envío»:

1element.send_keys("Poner algo de texto")

pitón

Además de enviar el texto, también podemos enviar las pulsaciones de teclas, individualmente o combinadas, con el texto.

12element.send_keys(Keys.RETURN)element.send_keys("Set text", Keys.ARROW_DOWN)

pitón