Está en la página 1de 4


Dirección General de Servicios de Cómputo Académico
Dirección de Cómputo para la Docencia

Ejercicio #2: Comprobar la posición de una palabra clave en Google


para un dominio en concreto

 Categoría: Ejercicios

El objetivo de este ejercicio es determinar en qué posición rankea una palabra clave en
Google para un dominio determinado.

Cuando realizas una búsqueda en Google para una serie de palabras clave, Google te
muestra un listado de sitios web para los que esas palabras clave son relevantes.

Por ejemplo, la palabra Python para el dominio python.org rankea en la primera posición.

Por tanto, este ejercicio consiste en automatizar el proceso de encontrar la posición en que
rankea una palabra clave en Google.

A continuación, te detallo en los requisitos cómo puedes implementar el ejercicio paso a


paso.

Requisitos

 Implementar una función comprueba_keywords(kw, dominio).


o Esta función define dos parámetros: kw es un string con la keyword o keywords a
buscar; dominio es el dominio para el que se quiere comprobar la posición en
que rankea la palabra clave kw.
o La función debe devolver la posición para la que rankean las palabras clave kw
para el dominio dominio.
o Si no se ha encontrado en las primeras 100 posiciones, la función devolverá por
defecto el valor 100.
 Añadir una variable al programa con el dominio a tener en cuenta (puedes elegir el
dominio que prefieras para trabajar).
 Añadir una nueva opción de menú al programa: [3] - Comprobar palabras clave.
o Cuando el usuario seleccione en el menú la opción 3, el programa solicitará al
usuario qué palabras clave quiere comprobar y seguidamente invocará a la
función comprueba_keywords().
o Además, se mostrará en qué posición rankean las palabras clave o si no rankean
(la función devuelve el valor 100).

Ejercicios Python #2 L.I. Raymundo Lumbreras López [Hoja 1 de 4]


JJLH


Dirección General de Servicios de Cómputo Académico
Dirección de Cómputo para la Docencia

Librerías a instalar

Debes instalar las librerías requests, beautifulsoup4 y lxml.

IMPORTANTE: Recuerda añadir un fichero requirements.txt en tu proyecto.

Consideraciones a tener en cuenta

 La URL de Google a utilizar para realizar una búsqueda es la siguiente


https://www.google.com/search?q={kw}&start={start}
o El parámetro kw se corresponde con las palabras clave a buscar.
o El parámetro start se utiliza para buscar en las diferentes páginas de resultados.
Los resultados de la página 1 de Google son aquellos para los que start vale 0,
los de la página 2 se obtienen cuando start vale 10, los de la página 3 se
devuelven cuando start vale 20, …

Solución al Ejercicio #2
Función comprueba_keywords()

El truco del ejercicio está en hacer una petición GET con la librería requests a la URL
https://www.google.com/search?q=una_keyword&start=0 y guardar la página
devuelta en un fichero. Una vez guardado el fichero, hay que abrirlo y analizar los
diferentes componentes HTML que conforman la página de resultados de Google.

De entre todos ellos, los resultados de búsqueda son aquellos contenidos en un bloque div
cuyas clases son ZINbbc xpd O9g5cc uUPGi. Este bloque div, contiene a su vez otro
bloque div que incluye un enlace. Si el atributo href del enlace contiene el dominio por el
que estamos buscando, entonces ya se puede calcular la posición en la que rankean las
palabras clave para ese dominio contando el número de bloques div hasta llegar a este en
concreto.

Con todo esto, ya puedes implementar la función comprueba_keywords(kw, dominio):

Ejercicios Python #2 L.I. Raymundo Lumbreras López [Hoja 2 de 4]


JJLH


Dirección General de Servicios de Cómputo Académico
Dirección de Cómputo para la Docencia

Observa que si no se ha encontrado el dominio para una página de resultados, hay que verificar si
hay más páginas de resultados disponibles (es posible que Google limite las páginas de resultados

Ejercicios Python #2 L.I. Raymundo Lumbreras López [Hoja 3 de 4]


JJLH


Dirección General de Servicios de Cómputo Académico
Dirección de Cómputo para la Docencia

a 2 o 3). Para ello, hay que comprobar que existe un enlace con el atributo aria-
label="Página siguiente" en el bloque footer.

Actualizar el menú de la aplicación

Para completar el ejercicio tan solo falta actualizar el menú de la aplicación del siguiente
modo:

Fíjate que he añadido la variable dominio al programa principal para que sea una variable de la
aplicación.

Ejercicios Python #2 L.I. Raymundo Lumbreras López [Hoja 4 de 4]


JJLH

También podría gustarte