? 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 2025 - Thib BV | Brugstraat 18 | 2812 Mechelen | Bélgica | IVA BE 0749 716 760\n"]}
El web scraping se ha convertido en una habilidad vital para los desarrolladores de Python, los analistas de datos y cualquiera que trabaje con conjuntos de datos. Cuando se trata de datos estructurados y ricos, las tablas que se encuentran en los sitios web son a menudo minas de oro de información. Tanto si buscas catálogos de productos, estadísticas deportivas o datos financieros, la capacidad de extraer y guardar datos de tablas con Python es una herramienta inestimable.
Esta guía práctica te lleva paso a paso a través del proceso de scraping de tablas de sitios web utilizando Python. Al final, sabrás cómo utilizar librerías populares como requests, Beautiful Soup e incluso pandas para acceder a los datos de las tablas y almacenarlos en formatos reutilizables como archivos CSV.
Antes de entrar en detalles técnicos, esto es lo que necesitarás para seguirnos:
Utilizaremos el comando pip para instalar las librerías necesarias. Simplemente ejecute el siguiente comando en su terminal para completar la instalación:
pip install peticiones beautifulsoup4 pandas
El primer paso en cualquier proyecto de web scraping es analizar la estructura del sitio web de destino. En este ejemplo, extraeremos datos de un sitio web de ejemplo que contiene una tabla con la clasificación de los equipos de hockey. A continuación se muestra una vista previa de la tabla:
Así es como aparece esta tabla dentro de la estructura HTML.
El primer paso es obtener la página web que queremos raspar. Utilizaremos la librería requests para enviar una petición HTTP y recuperar el contenido HTML de la página web ficticia que estamos utilizando para obtener el contenido de la tabla.
url = "https://www.scrapethissite.com/pages/forms/"
response = requests.get(url)
if response.status_code == 200:
print("Page fetched successfully!")
html_content = response.text
else:
print(f"Failed to fetch the page. Status code: {response.status_code}")
exit()
En HTML, una tabla es una forma estructurada de presentar datos en filas y columnas, como en una hoja de cálculo. Las tablas se crean con la función <table>
y su contenido se divide en filas (<tr>
) y células (<td>
para celdas de datos o <th>
para las celdas de cabecera). Aquí tienes un rápido desglose de cómo funciona la estructura de una tabla:
<table>
actúa como contenedor de todas las filas y celdas.<tr>
(fila de la tabla) representa un corte horizontal de la tabla.<td>
contienen valores de datos individuales (o <th>
para las cabeceras). Por ejemplo, en esta secuencia de comandos, localizamos el archivo <table>
con una clase específica (class="tabla"
) y extraer sus filas y celdas utilizando Sopa hermosa. Esto nos permite extraer los datos sistemáticamente y prepararlos para analizarlos o guardarlos.
soup = BeautifulSoup(html_content, "html.parser")
table = soup.find("table", {"class": "table"})
if not table:
print("No table found on the page!")
exit()
En este paso, guardaremos los datos extraídos de la tabla en un archivo CSV para su uso futuro y también los mostraremos como un DataFrame de pandas para que pueda ver cómo están estructurados los datos. Guardar los datos como CSV permite analizarlos posteriormente en herramientas como Excel, Google Sheets o el propio Python.
headers = [header.text.strip() for header in table.find_all("th")]
rows = []
for row in table.find_all("tr", class_="team"):
cells = [cell.text.strip() for cell in row.find_all("td")]
rows.append(cells)
df = pd.DataFrame(rows, columns=headers)
csv_filename = "scraped_table_data_pandas.csv"
df.to_csv(csv_filename, index=False, encoding="utf-8")
print(f"Data saved to {csv_filename}")
Cuando ejecute este código, pandas creará un archivo llamado scraped_table_data.csv
en su directorio de trabajo, y los datos extraídos se imprimirán en la consola de la siguiente manera:
Nombre del equipo Año Ganancias Pérdidas OT Pérdidas % de victorias Goles a favor (GF) Goles en contra (GA) + / -
0 Boston Bruins 1990 44 24 0. 55 299 264 35
1 Buffalo Sabres 1990 31 30 0.388 292 278 14
2 Calgary Flames 1990 46 26 0.575 344 263 81
3 Chicago Blackhawks 1990 49 23 0.613 284 211 73
4 Detroit Red Wings 1990 34 38 0.425 273 298 -25
A continuación se muestra el script completo en Python para extraer datos de tablas de un sitio web, guardarlos en un archivo CSV y mostrar los datos extraídos. Este script combina todos los pasos cubiertos en esta guía en un único flujo de trabajo cohesivo.
import requests
from bs4 import BeautifulSoup
import pandas as pd
url = "https://www.scrapethissite.com/pages/forms/"
response = requests.get(url)
if response.status_code == 200:
print("Page fetched successfully!")
html_content = response.text
else:
print(f"Failed to fetch the page. Status code: {response.status_code}")
exit()
soup = BeautifulSoup(html_content, "html.parser")
table = soup.find("table", {"class": "table"})
if not table:
print("No table found on the page!")
exit()
headers = [header.text.strip() for header in table.find_all("th")]
rows = []
for row in table.find_all("tr", class_="team"):
cells = [cell.text.strip() for cell in row.find_all("td")]
rows.append(cells)
df = pd.DataFrame(rows, columns=headers)
csv_filename = "scraped_table_data_pandas.csv"
df.to_csv(csv_filename, index=False, encoding="utf-8")
print(df.head())
print(f"Data saved to {csv_filename}")
Esta guía le ha guiado paso a paso por el proceso: comprender la estructura del sitio web, extraer los datos y guardarlos para su análisis. Tanto si estás creando conjuntos de datos para investigación, automatizando la recopilación de datos o simplemente explorando las posibilidades del web scraping, dominar estas técnicas te abre un mundo de oportunidades.
Durante el scraping, es posible que te encuentres con problemas como prohibiciones de IP o límites de velocidad impuestos por los sitios web. Aquí es donde los proxies son cruciales. Los proxies te permiten:
ProxyScrape ofrece una amplia gama de proxies, incluidos proxies residenciales, premium, dedicados y móviles, adaptados para el raspado web. Sus soluciones de proxy fiables y escalables pueden ayudarle a gestionar proyectos de scraping a gran escala sin interrupciones, garantizando una recopilación de datos fluida y eficiente.