Inicio / Tecnología e Informática / La mejor guía para hacer web scraping con selenium python

La mejor guía para hacer web scraping con selenium python

Selenium es una biblioteca y una herramienta de Python que se utiliza para automatizar los navegadores web para realizar una serie de tareas. Uno de ellos es el web scraping para extraer datos e información útil que de otro modo no estarían disponibles.

Paso 1: Instalar e Importar

pip install selenium

Una vez instalado, estará listo para las importaciones.

from selenium import webdriver

from selenium.webdriver.common.keys import Keys

import pandas as pd

Paso 2: Instalar y acceder a WebDriver

Un controlador web es un ingrediente vital para este proceso. Es lo que en realidad abrirá automáticamente su navegador para acceder al sitio web de su elección. Este paso es diferente según el navegador que utilice para explorar Internet. Sucede que uso Google Chrome. Algunos dicen que Chrome funciona mejor con Selenium, aunque también es compatible con Internet Explorer, Firefox, Safari y Opera.

Para Chrome, primero debe descargar el controlador web en https://chromedriver.chromium.org/downloads. Hay varias opciones de descarga diferentes según su versión de Chrome. Para ubicar qué versión de Chrome tiene, haga clic en los 3 puntos verticales en la esquina superior derecha de la ventana de su navegador, desplácese hacia abajo para obtener ayuda y seleccione «Acerca de Google Chrome». Allí verás tu versión. Tengo la versión 80.0.3987.149, que se muestra en las capturas de pantalla a continuación.

Ahora necesita saber dónde guardó la descarga de su controlador web en su computadora local. El mío está guardado en mi carpeta de descargas predeterminada. Ahora puede crear una variable de controlador usando la ruta directa de la ubicación de su controlador web descargado.

driver = webdriver.Chrome(‘/Users/MyUsername/Downloads/chromedriver’)

Paso 3: acceda al sitio web a través de Python

Paso muy simple pero muy importante. Necesita su código para abrir el sitio web que está intentando raspar.

driver.get(‘link del sitio web’)

Cuando se ejecuta, este fragmento de código abrirá el navegador a su sitio web deseado.

Paso 4: localice la información específica que está raspando

Para extraer la información que desea raspar, debe ubicar el XPath del elemento. Un XPath es una sintaxis utilizada para encontrar cualquier elemento en una página web. Para ubicar el XPath del elemento, resalte el primero en la lista de lo que está buscando, haga clic derecho y seleccione inspeccionar; esto abre las herramientas de desarrollo. Para mi ejemplo, primero quiero ubicar los nombres de los jugadores de la NBA, así que primero selecciono a Stephen Curry.

Paso 5: extracción de puntos de datos específicos

Extraeremos nuestros puntos de datos de destino utilizando el atributo ‘find_elements_by_xpath’ en el controlador web de Selenium, saldremos del controlador y cerraremos el navegador una vez que se hayan recopilado los datos de destino.

Apuntaremos a los puntos de datos de la siguiente manera:

  • Título profesional
  • Compañía
  • Locación de trabajo
  • Descripción del trabajo
  • Fecha en que se cargó el trabajo

Debe verse algo así:

for each_job in job_list:

# Getting job info

job_title = each_job.find_elements_by_xpath(«.//h2[@class=’title’]/a»)[0]

job_company = each_job.find_elements_by_xpath(«.//span[@class=’company’]»)[0]

job_location = each_job.find_elements_by_xpath(«.//span[@class=’location accessible-contrast-color-location’]»)[0]

job_summary = each_job.find_elements_by_xpath(«.//div[@class=’summary’]»)[0]

job_publish_date = each_job.find_elements_by_xpath(«.//span[@class=’date ‘]»)[0]

# Saving job info

job_info = [job_title.text, job_company.text, job_location.text, job_summary.text, job_publish_date.text]

# Saving into job_details

job_details.append(job_info)

driver.quit()

Tenga en cuenta que el objetivo puede cambiar estos selectores, por lo que las personas deben confirmar que los selectores en cuestión son correctos, no asuma que lo son.

Paso 6: Guardar los datos en preparación para la salida

En este punto, querrá agregar columnas al marco de datos y hacer uso del atributo ‘to_csv’ para guardar todos los datos obtenidos en formato CSV de la siguiente manera:

job_details_df = pd.DataFrame(job_details)

job_details_df.columns = [‘title’, ‘company’, ‘location’, ‘summary’, ‘publish_date’]

job_details_df.to_csv(‘job_details.csv’, index=False)

El archivo CSV deseado se descargará en la siguiente ubicación: FILE_PATH_FOLDER

Eso es todo, acabas de completar con éxito tu primer web scraping con Selenium Python