Obterner el número de páginas que un sitio tiene indexadas en Google

  • 18 Feb 2020
  • Python, ChromeDriver, Selenium, Web scraping

En detalle, lo que este artículo intentará explicar es como obtener un número de resultados que genera una búsqueda en Google del tipo site:dominio.com. Lo que no quiere decir que se trate a ciencia cierta del número de páginas que el sitio domain.com tenga indexadas en Google. Lo que hace no tan simple obtener este número es que no se encuentra dentro del HTML si no que es generado en forma dinámica. Quiere decir que descargando la página con por ejmploe wget no lo vamos a encontrar. Una solución sería utilizando lo más parecido a un navegador... por ejemplo, Chrome. Solo que controlado por Selenium (versión 3.141.0 al momento de escribir este artículo) para que podamos manejar Chrome con Python.

Instalar ChromeDriver

Desde el sitio de ChromeDriver es posible descargar la versión que más nos guste. Lo único que hay que hacer es descargar el archivo en nuestro equipo (en mi caso un Fedora Server) y darle permisos para que pueda ejecutarse.

cd /tmp
wget https://chromedriver.storage.googleapis.com/81.0.4044.20/chromedriver_linux64.zip #o le versión que sea
unzip chromedriver_linux64.zip
mv chromedriver /usr/bin/
chmod +x /usr/bin/chromedriver

Instalar Selenium

Consultando la documentación oficial de Selenium, podemos instalarlo usando pip

python -m pip install selenium

Python

Bien, una vez instaladas estas dos dependencias podremos a través de Python visitar, extraer y parsear lo que sea. Pero este caso vamos a limitarnos a ese número de resultados que Google imprime inmediatamente antes de la lista de resultados. Este es el script:

Si lo llamamos por ejemplo contar_resultados.py será suficiente ejecutar:

python contar_resultados.py -w="site:minestron.it"