In this Article
Mucha gente cree que las herramientas de inteligencia artificial como ChatGPT o Gemini están haciendo demasiado de nuestro trabajo, reemplazando el esfuerzo humano real e incluso cambiando la forma en que pensamos y tomamos decisiones. Esto a menudo genera preocupaciones sobre el futuro del empleo y la creatividad. Pero, ¿es realmente la IA una amenaza sobreestimada o es simplemente un mini asistente que nos ayuda cuando se utiliza en equilibrio?
Tomemos como ejemplo el extracción web. Tradicionalmente, la construcción de extractores requería sólidos conocimientos de codificación, atención al detalle y habilidades de depuración. Con ChatGPT, incluso los principiantes pueden generar scripts de extracción listos para usar en segundos, mientras que los profesionales pueden ahorrar horas al permitir que la IA se encargue de tareas de codificación repetitivas. En lugar de reemplazar a los desarrolladores, la IA funciona como una poderosa herramienta de productividad que reduce el trabajo rutinario.
Este tipo de raspado puede ser útil para investigadores que recopilan datos, empresas que monitorean a sus competidores o estudiantes que aprenden Python. Al combinar la capacidad de ChatGPT para escribir y explicar código con las bibliotecas de extracción de Python, cualquiera puede crear extractores eficientes y rápidos.
Las herramientas clave que necesita para comenzar
Antes de comenzar a extracción web de páginas Amazon usando Python, asegurémonos de que nuestro entorno esté configurado correctamente. Necesitaremos:
- Visual Studio Code (o cualquier otro editor de código)
Descargue VS Code desde el sitio web oficial y siga las instrucciones de instalación de su sistema operativo. Luego, ábrelo e instala la extensión Python haciendo clic en el ícono cuadrado en la barra lateral. Abra la carpeta donde desea crear su proyecto seleccionando Archivo – Abrir carpeta. Cree un nuevo archivo Python para su script, por ejemplo, scraping_gpt_test.py
- Python y sus bibliotecas (Requests, BeautifulSoup)
En caso de que no tenga Python 3.x instalado en su computadora, puede descargarlo desde https://www.python.org/. Compruebe si Python está instalado ejecutando uno de estos comandos:
python --version
python3 --version
Algunos sistemas todavía se vinculan python a Python 2, así que use python3 (y pip3) para asegurarse de que está ejecutando Python 3. Para utilizar las bibliotecas Python, primero instale pip con uno de estos comandos:
python -m ensurepip
python3 -m ensurepip
Luego, abra Terminal en su computadora, instale las bibliotecas Python usando:
pip install requests beautifulsoup4
pip3 install requests beautifulsoup4
Presione Entrar y verá si se instalaron.
- Cuenta ChatGPT
Cree una cuenta OpenAI gratuita o de pago para acceder ChatGPT, que utilizará para escribir, depurar y mejorar sus scripts de extracción.
- Proxies DataImpulse
Integraremos proxies mediante el uso de credenciales de proxy. Podrás acceder a toda la información necesaria en tu DataImpulse dashboard, dentro de los detalles de tu plan seleccionado.
También puede copiar los detalles correctos en el Sección de ejemplo básico URL.
- El sitio web que te gustaría eliminar
En este tutorial, estamos usando Wikipedia y su lista de países por población. Recuerde reemplazarlo con su sitio web de destino en el código.
👉 Sigue siempre las reglas: consulta un términos de servicio del sitio web y el archivo robots.txt antes de realizar el extracción para mantener la seguridad y la ética.
¿Puede ChatGPT generar código de raspado Python? vamos a probar
1. Inspeccione la página de destino y encuentre los elementos para raspar.
Haga clic derecho en el elemento que desee (por ejemplo, el nombre de un país o el número de población) y elija inspeccionar en tu navegador. Esto abrirá el Developer Tools panel. Pase el cursor sobre el HTML resaltado para asegurarse de haber seleccionado el elemento correcto.
2. Guarde el código HTML de esos elementos.
Una vez que haya localizado el elemento, haga clic derecho en HTML en el panel y copie el Selector CSS.
3. Realice un mensaje detallado para ChatGPT.
Escriba un mensaje que incluya:
- El objetivo URL;
- Los selectores que copiaste;
- Las bibliotecas que desea utilizar (por ejemplo, requests, BeautifulSoup);
Mencione servidores proxy y encabezados, PERO no comparta sus credenciales con ChatGPT.
Pegue su mensaje en ChatGPT. Nuestro mensaje:
“Cree un raspador web utilizando las bibliotecas Python, Beautiful Soup y Requests. Hora de importación. Sitio web de destino:
https://en.wikipedia.org/wiki/List_of_countries_and_dependencies_by_population
Objetivo: eliminar los países y su número de población en la página de destino. Utilice proxies DataImpulse como protección adicional. Añade encabezados.
Estos son los selectores CSS:
- Country: #mw-content-text > div.mw-content-ltr.mw-parser-output > table > tbody > tr:nth-child(2) > td:nth-child(1) > a
- Population: #mw-content-text > div.mw-content-ltr.mw-parser-output > table > tbody > tr:nth-child(2) > td:nth-child(2)
Salida: Guarde todos los datos extraídos en un archivo CSV.
Instrucciones adicionales: elimine los símbolos no deseados en la salida CSV”.
Aquí está la respuesta de ChatGPT:
- Revise y ejecute el código final.
Copie el script en su editor y ejecútelo. Es posible que sea necesaria alguna depuración si los selectores o el formato difieren. Si utiliza proxies, incluya siempre Encabezados User-Agent para soportar el acceso consistente. Añadiendo import time le permite utilizar retrasos entre solicitudes (time.sleep()), lo que ayuda a equilibrar la carga de solicitudes. Aquí está el código:
import requests
from bs4 import BeautifulSoup
import csv
import re
import time
# DataImpulse proxy configuration
PROXY = "http://username:[email protected]:8000"
proxies = {
"http": PROXY,
"https": PROXY
}
url = "https://en.wikipedia.org/wiki/List_of_countries_and_dependencies_by_population"
headers = {
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) "
"AppleWebKit/537.36 (KHTML, like Gecko) "
"Chrome/119.0.0.0 Safari/537.36",
"Accept-Language": "en-US,en;q=0.9",
}
# Try with retry logic
for attempt in range(3):
try:
response = requests.get(url, headers=headers, proxies=proxies, timeout=15)
response.raise_for_status()
break
except requests.exceptions.HTTPError as e:
print(f"Attempt {attempt+1}: HTTP error {e}. Retrying...")
time.sleep(2)
else:
raise SystemExit("Failed to fetch the page after retries.")
soup = BeautifulSoup(response.text, "html.parser")
# Locate the first wikitable
table = soup.find("table", {"class": "wikitable"})
rows = table.find_all("tr")
data = []
for row in rows[1:]: # skip header row
cols = row.find_all("td")
if len(cols) >= 2:
country = cols[0].get_text(strip=True)
population = cols[1].get_text(strip=True)
# Clean unwanted symbols
population = re.sub(r"\[.*?\]", "", population) # remove [1], [note] etc.
population = population.replace(",", "").replace("\xa0", " ").strip()
data.append([country, population])
# Save results to CSV
with open("countries_population.csv", "w", newline="", encoding="utf-8") as f:
writer = csv.writer(f)
writer.writerow(["Country", "Population"])
writer.writerows(data)
print("Scraping completed. Data saved to countries_population.csv")
Una vez que se ejecute el script, su terminal VS Code mostrará:
Ahora abre el countries_population.csv archivo. En el interior encontrará una hoja estructurada que contiene los países y sus poblaciones. ¡Felicitaciones por completar la tarea!
Aquí vienen los problemas
Al realizar extracción, las cosas no siempre funcionan como esperamos. Aquí hay algunos problemas comunes:
- Error de cliente 403: Algunos sitios web bloquean solicitudes que no parecen provenir de un navegador real. Incluya siempre encabezados como User-Agent, especialmente cuando utilice servidores proxy.
- IP bloqueado o limitación de velocidad: Las solicitudes repetidas generalmente revelan su IP y los sitios web pueden negar el acceso o presentarle tareas de verificación. uso apoderados residenciales (rápido y confiable, desde dispositivos domésticos reales) o servidores proxy móviles (dinámico y difícil de detectar, de los operadores de telefonía móvil) para reducir las interrupciones de verificación.
- Tiempos de espera o respuestas lentas: El sitio web o su conexión pueden ser lentos, lo que provoca que las solicitudes fallen. Añadir time.sleep() entre solicitudes e implementar lógica de reintento.
- Selectores CSS rotos: Los sitios web suelen cambiar su diseño, por lo que los selectores guardados pueden dejar de funcionar. Vuelva a inspeccionar los elementos en el navegador y actualice los selectores en su secuencia de comandos.
- Datos desordenados: HTML puede contener símbolos adicionales, valores vacíos o formatos inesperados. Limpie los datos en Python antes de guardarlos en CSV, por ejemplo, elimine caracteres especiales o recorte espacios en blanco.
¿Existe futuro para el extracción web asistido por IA?
Una respuesta sencilla: sí. Las herramientas de inteligencia artificial como ChatGPT no reemplazan a los desarrolladores; los están aumentando. Estas herramientas manejan tareas de codificación repetitivas, generan scripts de extracción rápidamente y sugieren soluciones para errores comunes. El extracción asistido por IA ayudará a los profesionales a trabajar más rápido, mantenerse eficientes y centrarse en análisis de nivel superior en lugar de codificación manual. Aún así, es importante mantener el equilibrio.
Por supuesto, incluso con la IA, es importante raspar de manera responsable. Utilice servidores proxy confiables, respete los límites de tarifas y siga los términos de servicio de un sitio web para prácticas de extracción éticas.
*Este tutorial está destinado estrictamente a fines educativos. Demuestra técnicas de extracción web. No pretende alentar ni instruir a nadie a eliminar sitios web que infrinjan sus términos de servicio o las leyes aplicables. Asegúrese siempre de que sus actividades de extracción sean éticas, legales y respetuosas con las reglas del sitio web.










