Tutorial de web scrapping en Glassdoor utilizando Python
Tabla de contenidos
- Introducción
- ¿Qué es la web scrapping?
- Tutorial de web scrapping usando Python
- ¿Qué es Glassdoor?
- ¿Qué datos se pueden obtener de Glassdoor?
- Paso 1: Importar librerías y enviar una solicitud GET
- Paso 2: Crear un objeto Beautiful Soup y analizar el HTML
- Paso 3: Obtener el nombre de la empresa
- Paso 4: Obtener el título del trabajo
- Paso 5: Obtener la ubicación del trabajo
- Paso 6: Obtener la descripción del trabajo
- Consejos para realizar web scrapping en Glassdoor
- Conclusión
- Recursos
Tutorial de web scrapping usando Python en Glassdoor
¡Hola amigos! En este tutorial, vamos a aprender cómo realizar web scrapping en Glassdoor utilizando Python. Glassdoor es una página web donde puedes buscar empleos, empresas y opiniones sobre las empresas. También puedes consultar información sobre salarios y otros detalles relevantes. En este video, nos centraremos en extraer datos sobre trabajos de científico de datos en Los Ángeles. Obtendremos información como el nombre de la empresa, el título del trabajo, la ubicación y la descripción de cada empleo. Entonces, ¡vamos al código!
Paso 1: Importar librerías y enviar una solicitud GET
Lo primero que debemos hacer es importar las librerías necesarias, como requests
y BeautifulSoup
. Luego, enviaremos una solicitud GET a la página de Glassdoor utilizando nuestra URL de interés y comprobaremos el código de estado de la solicitud.
import requests
from bs4 import BeautifulSoup
url = "https://www.glassdoor.com/jobs/data-scientist-jobs-SRCH_KO0,14_IP1.htm"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"
}
response = requests.get(url, headers=headers)
if response.status_code == 200:
print("La solicitud GET se realizó con éxito.")
Paso 2: Crear un objeto Beautiful Soup y analizar el HTML
Una vez que hemos confirmado que la solicitud se realizó correctamente, creamos un objeto Beautiful Soup para analizar el HTML de la página. Esto nos permitirá acceder a los datos que queremos extraer.
soup = BeautifulSoup(response.content, "lxml")
Paso 3: Obtener el nombre de la empresa
Para obtener el nombre de la empresa, inspeccionamos el HTML de la página y encontramos el elemento adecuado. En este caso, el nombre de la empresa se encuentra dentro de un div con la clase "job-info-item". Utilizamos la función find_all
para encontrar todos los elementos con esa clase y luego extraemos el texto de cada elemento.
company_names = []
for job in soup.find_all("div", class_="job-info-item"):
company_names.append(job.a.text.strip())
print("Nombres de las empresas:")
for name in company_names:
print("- " + name)
Paso 4: Obtener el título del trabajo
De manera similar, buscamos el elemento que contiene el título del trabajo. En este caso, el título se encuentra dentro de un div con la clase "saved-job-titles". Utilizamos una combinación de find_all
y el índice [0] para obtener el primer elemento de la lista.
job_titles = []
for job in soup.find_all("div", class_="saved-job-titles"):
job_titles.append(job.a.text.strip())
print("Títulos de los trabajos:")
for title in job_titles:
print("- " + title)
Paso 5: Obtener la ubicación del trabajo
La ubicación del trabajo se encuentra dentro de un div con la clase "job-info employee-location". Utilizamos una función similar a la anterior para encontrar y extraer el texto deseado.
locations = []
for job in soup.find_all("div", class_="job-info employee-location"):
locations.append(job.span.text.strip())
print("Ubicaciones:")
for location in locations:
print("- " + location)
Paso 6: Obtener la descripción del trabajo
Finalmente, buscamos la descripción completa del trabajo. Primero, obtenemos todos los enlaces que nos llevarán a las páginas individuales de cada empleo. Luego, utilizando cada enlace, hacemos una solicitud GET a la página correspondiente y extraemos la descripción del trabajo.
descriptions = []
links = []
for job in soup.find_all("div", class_="job-container"):
link = "https://www.glassdoor.com" + job.a["href"]
links.append(link)
for link in links:
job_response = requests.get(link, headers=headers)
job_soup = BeautifulSoup(job_response.content, "lxml")
description = job_soup.find("div", class_="job-description-content").text.strip()
descriptions.append(description)
print("Descripciones de los trabajos:")
for description in descriptions:
print("- " + description)
¡Y eso es todo! Ahora tienes todos los datos que necesitas extraer de Glassdoor utilizando web scrapping. Recuerda ser respetuoso con los términos y condiciones del sitio web y considera el uso de proxies o servicios de IP para evitar ser bloqueado.
Si te gustó este video, asegúrate de darle me gusta y suscribirte a nuestro canal. No dudes en dejarnos tus comentarios y preguntas a continuación. ¡Gracias por tu atención y nos vemos en el próximo tutorial!
Recursos: