? Estas son sus opciones:","Crunchbase","Quiénes somos","Gracias a todos por el increíble apoyo.","Enlaces rápidos","Programa de afiliados","Premium","ProxyScrape prueba premium","Tipos de proxy","Países sustitutos","Casos de uso de proxy","Importante","Política de cookies","Descargo de responsabilidad","Política de privacidad","Condiciones generales","Redes sociales","Facebook","LinkedIn","Twitter","Quora","Telegrama","Discordia","\n © Copyright 2024 - Thib BV | Brugstraat 18 | 2812 Mechelen | Bélgica | IVA BE 0749 716 760\n"]}
La recopilación de datos es un término muy utilizado en la última década. Todas las empresas quieren conocer a fondo a sus clientes para poder desarrollar la mejor estrategia para resolver los problemas de la gente. Normalmente, las organizaciones basadas en la tecnología disponen de lagos de datos para obtener datos para su análisis. Pero, a veces, tienen que reunir los datos en línea para
La recopilación de datos es un término muy utilizado en la última década. Todas las empresas quieren conocer a fondo a sus clientes para poder desarrollar la mejor estrategia para resolver los problemas de la gente. Normalmente, las organizaciones basadas en la tecnología disponen de lagos de datos para obtener datos para su análisis. Pero, a veces, tienen que recopilar los datos en línea para diversos análisis, como el análisis de sentimientos, el análisis SEO y la monitorización. Web scraping es el método para extraer datos de una fuente específica y guardarlos en un almacenamiento local o en la nube. Python es el mejor lenguaje de programación para realizar web scraping. Hay muchas bibliotecas en Python que pueden ayudarle a raspar datos de sitios web, blogs y otras fuentes en línea. Las más famosas son BeautifulSoup y Selenium. En este artículo, veremos cómo realizar selenium web scraping.
El web scraping consiste en extraer una gran cantidad de datos de varias páginas web en línea. Hoy en día, los principiantes en aprendizaje automático e IA invierten mucho tiempo en aprender diferentes formas de raspado web. El web scraping consta de dos partes: el crawler y el scraper. El crawler se encarga de encontrar y localizar los datos necesarios de la fuente de destino y, a continuación, el scraper ayuda a extraer esos datos de la fuente.
Selenium es una biblioteca de python gratuita y de código abierto que es un marco de pruebas automatizado utilizado principalmente para probar y validar aplicaciones web en varios navegadores. Se puede utilizar cualquier lenguaje de programación, como C#, Java y mi favorito, Python. El software Selenium es un conjunto de herramientas que consiste en:
Veamos cómo utilizar Selenium con Python para automatizar todo el proceso de web scraping.
Nuestro objetivo es recopilar los nombres y salarios de los jugadores de la NBA de la última década y, a continuación, guardar los datos en formato de marco de datos. NOTA: Para aprender y explicar cómo funciona Selenium web scraping, utilizamos el sitio web hoopshype.
Antes de iniciar el proceso de web scraping, es necesario instalar el controlador de Chrome en su ordenador. El controlador de Chrome que instale dependerá de la versión del navegador Chrome que esté utilizando. Puedes comprobarlo siguiendo estos pasos:
PASO 1: Abra el navegador Chrome-> Haga clic en el icono "Hamburguesa", que está presente en la esquina superior derecha del navegador.
PASO 2: Después de hacer clic en el icono "Hamburguesa", verás la opción "Ayuda". Haz clic en "Ayuda" y selecciona "Acerca del navegador Chrome". Una vez hecho esto, aparecerá la página de la versión. La imagen de abajo representa la página de versión de Google Chrome.
Ventana de versión de Google Chrome
Nota: Si tiene alguna actualización, es mejor instalarla antes de instalar el controlador de Chrome.
Una vez que averigüe la versión, vaya al sitio web del controlador de Chrome y descargue el controlador en función de la versión de Chrome que tenga.
La forma más sencilla de instalar el paquete selenium es a través de PIP (Package Installer Python). Puedes abrir cualquier bloc de notas, ya sea Juypter o Google Collab, y escribir el siguiente código python:
pip install selenium
El comando anterior descarga todos los paquetes de dependencia para Selenium. Ahora, vamos a ver cómo implementar web scraping con Selenium.
Recomendamos crear un entorno virtual e implementar el proceso de web scraping para una mejor práctica. Vamos a utilizar el cuaderno Juypter para hacer web scraping en este ejemplo.
PASO 1: Importar todas las librerías necesarias. Pandas y Selenium webdriver son las principales librerías para el web scraping simple. A continuación se muestra el código python para importar todas las librerías necesarias:
from selenium import webdriver
from selenium.webdriver.common.keys import claves
import pandas as pd
PASO 2: Una vez importadas las librerías, el siguiente paso es iniciar el driver de Chrome. A continuación se muestra el código python para iniciar el controlador
driver = webdriver.Chrome(r"\Selenium\chromedriver.exe")
NOTA: En el argumento, mencione la ruta completa de la ubicación del controlador de Chrome en su sistema local.
PASO 3: Una vez que inicies el controlador, el navegador Chrome debería abrirse en una nueva ventana. Pero la ventana debe estar vacía ya que no hay ninguna URL de alimentación. El código python para la URL del feed de destino se muestra a continuación:
seed_url = 'https://hoopshype.com/salaries/players/'
driver.get(dirección_semilla)
PASO 4: Una vez introducida la URL del feed, en la nueva ventana, deberías poder ver el sitio web de destino. El siguiente proceso es encontrar el nombre de cada jugador de la NBA. En Selenium, puedes encontrar los elementos HTML por los siguientes métodos:
En nuestro ejemplo, vamos a ver cómo detectar los elementos utilizando el selector XPATH. Queremos extraer dos detalles de estos datos:
Nota: También es posible utilizar el formulario de búsqueda para encontrar elementos web. El formulario de búsqueda se encuentra en la parte inferior de la página Inspeccionar.
PASO 5: Cuando aterrice en la página de destino, debería ver una lista de jugadores y sus salarios para las temporadas (año). Selecciona uno de los nombres de los jugadores y haz clic con el botón derecho del ratón. Te aparecerán varias opciones. En esas opciones, haga clic en "Inspeccionar". La imagen de abajo representa la página Inspeccionar.
Inspeccionar la página de destino
Ahora, como ya se ha dicho, el objetivo es extraer los nombres de los jugadores. Por lo tanto, el primer paso es encontrar un elemento de un solo jugador y el factor común entre todos los elementos de jugador. Así que, en el mismo proceso, haz clic con el botón derecho en el nombre del jugador e inspecciónalo. Esto debería llevarte directamente a la localización de tu elemento. En lugar de tomar el nombre de un jugador en nuestro escenario, estamos tomando los nombres de todos los jugadores. El elemento común entre todos los jugadores es "td class-'name'". Por lo tanto, si utilizamos este elemento y hacemos un bucle con él, obtendremos los nombres de todos los jugadores. El código python para extraer el nombre de un jugador se muestra a continuación:
nba_players = driver.find_elements_by_xpath('//td[@class="nombre"]')
lista_jugadores = []
for p in range(len(nba_players)):
players_list.append(nba_players[p].text)
imprimir(lista_jugadores)
Explicación: Como se mencionó anteriormente, estamos encontrando el elemento de código HTML utilizando el enfoque XPATH. Obviamente, necesitamos la ruta XPATH de múltiples elementos. La forma más fácil es encontrar el elemento nombre, que es "td nombre-clase". Haga clic derecho sobre el elemento y seleccione "Copiar". Deberías obtener muchas opciones, como copiar ruta JS y copiar XPATH. Seleccione copiar XPATH, y usted debe obtener automáticamente la ubicación XPATH del elemento. Pega la ruta en el argumento find_elements_by_XPATH. Una vez pegada la ruta, Python debería empezar a identificar estos elementos y obtener sus direcciones, no el nombre real. Para obtener los nombres reales de los jugadores, vamos a hacer un bucle con la función y anexar los resultados a una lista vacía como salida. Una vez que ejecute el fragmento de código anterior, debe obtener la salida como se muestra en la imagen siguiente.
Salida para extraer el nombre de los jugadores
Ahora que tenemos los nombres de los jugadores, el siguiente paso es obtener sus respectivos salarios. El proceso exacto de extracción del nombre se lleva a cabo para obtener los detalles salariales.
PASO 6: Los datos salariales se extraen utilizando el código python como se muestra a continuación:
salario_jugadores=driver.find_elements_by_xpath('//td[@class="hh-salarios-ordenados"]')
lista_salarios=[]
for s in range(len(salario_jugadores)):
salary_list.append(salario_jugadores[s].texto)
imprimir(lista_salarios)
Explicación: El proceso es el mismo. La única diferencia es el elemento común entre los jugadores. El elemento común es el elemento web "td class-'hh-salaries-sorted'". Después de encontrar el elemento, creamos una lista vacía para hacer un bucle con toda la función y añadimos los detalles salariales a la lista vacía. El resultado debería parecerse a la imagen que se muestra a continuación:
Salida para extraer el salario de los jugadores
PASO 7: Ahora hemos extraído los datos de nuestro objetivo. Pero, si nos fijamos bien, los datos sólo corresponden a una temporada (el año en curso). Nuestro problema es extraer los datos de la última década. Aquí es donde la automatización del navegador entra en escena. No hay de qué preocuparse. Podemos utilizar el mismo código para la temporada que la función de bucle. El código python para automatizar el proceso de scraping y obtener los datos de la última década se muestra a continuación:
para i en rango(2010,2021):
número_página = str(i) + '-' + str(i+1) +'/'
feed_url = 'https://hoopshype.com/salaries/players/' + número_página
driver.get(feed_url)
jugadores = driver.find_elements_by_xpath('//td[@class="nombre"]')
salarios = driver.find_elements_by_xpath('//td[@class="hh-salarios-ordenados"]')
jugador = []
for j in range(len(players)):
player.append(jugadores[j].texto)
salario = [ ]
for k in range(len(salarios)):
salario.append(salarios[k].texto)
Explicación: Como se ha mencionado anteriormente, nuestro objetivo es obtener los datos de los últimos diez años. Para ello, tenemos que aplicar la paginación. La paginación es el proceso de añadir números consecutivos, normalmente números de página, para identificar la secuencia de orden de la página. Las temporadas se representan en el formato AAAA/MM. Para reconocerlo, utilizamos la técnica de concatenación. Después, utilizamos el mismo proceso y el mismo código dentro del bucle.
PASO 8: El último paso es guardar los datos en el marco de datos para diversos análisis, como el análisis de sentimiento y análisis de la competencia. El código python para guardar los datos en el marco de datos se muestra a continuación:
df = pd.DataFrame(columns=['Jugador','Salario','Año'])
data = list(zip(jugador[1:],salario[1:]))
df1 = pd.DataFrame(datos, columnas=['Jugador','Salario'])
df1['Año'] = i
df = df.append(df1)
NOTA: En la segunda línea del código, se puede ver que hice slicing. La razón de esto fue que cuando ves la salida de los nombres de los jugadores y los salarios, el primer índice, es decir, el índice 0, fue el "JUGADOR" y "FECHA". Estos elementos no aportan mucha importancia a la tabla. Por lo tanto, podemos eliminar esos elementos.
Explicación: Creamos un marco vacío con "Jugador", "Salario" y "Año" como columnas. Acumulamos todos los datos en una sola lista con la función Zip para anexar la lista al marco de datos. Una vez añadidos los datos al marco de datos, es el momento de finalizar la automatización y cerrar el controlador. Si es necesario, puede guardar el marco de datos en un archivo CSV para un repositorio de datos.
Ya está. Has realizado con éxito la automatización y el web scraping utilizando Selenium y Python.
Este artículo muestra cómo instalar un controlador de Chrome en tu sistema local para automatizar un pequeño proceso de web scraping. En tiempo real, manejar una gran cantidad de datos (en términos de tamaño, como MB, GB, y a veces TB) implica pasos complejos. Selenium es un buen comienzo para los principiantes interesados en la recopilación de datos, el proceso de screen scraping y la ciencia de datos en general. Como se ha mencionado, un proceso complejo de web scraping requiere mucho tiempo para recopilar los datos. La mayoría de los sitios web no permiten el web scraping durante un período prolongado; una vez alcanzado ese umbral, el sitio web probablemente bloqueará su dirección IP y detendrá su proceso de web scraping. Para evitar estas dificultades, se recomienda utilizar un proxy. ProxyScrape proporciona excelentes proxies residenciales que son los más adecuados para tareas de alta demanda, como el web scraping.
DESCARGO DE RESPONSABILIDAD: Este artículo tiene fines estrictamente didácticos. Sin seguir las directrices adecuadas, realizar web scraping puede ser ilegal. Este artículo no apoya de ninguna forma el web scraping ilícito.