Web Scraping con ChatGPT

Guías, Guías, Raspado, Ago-20-20245 minutos de lectura

El web scraping es una herramienta poderosa para desarrolladores, científicos de datos, vendedores digitales y muchas otras personas que desean extraer datos valiosos de sitios web. Si estás buscando elevar tu viaje de web scraping, aprovechar las capacidades de ChatGPT puede ayudarte mucho. Este blog le guiará a través del uso de ChatGPT para crear scripts de web scraping robustos, eficientes y fiables.

Introducción a ChatGPT

ChatGPT, desarrollado por OpenAI, es un modelo lingüístico de última generación diseñado para comprender y generar texto similar al humano. Aprovecha el procesamiento del lenguaje natural (PLN) para ayudar en diversas tareas, desde la creación de contenidos hasta la asistencia en la codificación. Gracias a su capacidad para comprender el contexto y ofrecer sugerencias inteligentes, ChatGPT se ha convertido en un valioso activo para desarrolladores y científicos de datos.

¿Qué es ChatGpt?

ChatGPT son las siglas de "Chat Generative Pre-trained Transformer". Es un tipo de inteligencia artificial capaz de generar texto a partir de la información que recibe. Aunque es conocido por sus capacidades conversacionales, sus aplicaciones van mucho más allá del simple diálogo.

Usos de ChatGpt en el web scraping

  • Asistencia con el código: Ayuda para escribir y depurar scripts de web scraping.
  • Recomendaciones de bibliotecas: Sugerir herramientas como Beautiful Soup, Scrapy, Selenium...
  • Buenas prácticas: Orientación sobre técnicas de scraping éticas y eficientes.

Limitaciones de ChatGPT en el Web Scraping

  • Eludir las medidas de seguridad: ChatGPT no puede ayudar a eludir medidas de seguridad como el bloqueo de IP u otras tecnologías anti-scraping más allá de los límites éticos.
  • Recogida de datos en tiempo real: ChatGPT no puede interactuar con sitios web en tiempo real para recopilar datos.
  • Desarrollo de herramientas personalizadas: ChatGPT no puede desarrollar herramientas o marcos de software personalizados para el web scraping.

Ejemplo de utilización de ChatGpt para el web scraping

Aunque el chat no puede raspar directamente un sitio web, sí que puede inspirarnos ideas sobre cómo enfocar el proceso de raspado web. Además, puede proporcionar scripts que podemos utilizar en nuestros proyectos de web scraping.

Veamos un ejemplo sencillo. Imaginemos que queremos scrapear un sitio web de entradas de blog y extraer cada entrada de blog, y almacenarla en un archivo csv. La información que queremos guardar es el título del blog, la descripción y la url del blog.

Paso 1 - Redactar ChatGpt Prompt:

En primer lugar, tenemos que crear una instrucción para ChatGPT que indique claramente lo que necesitamos. En este ejemplo, utilizaremos el sitio web (https://www.scrapethissite.com/pages) para extraer el título, la descripción y la URL de cada blog.Para instruir correctamente a ChatGpt, necesitamos proporcionar los selectores del primer blog. Para ello, haga clic con el botón derecho en el elemento y, a continuación, haga clic en inspeccionar

Después de que queremos agarrar el selector Xpath de nuevo haciendo clic derecho sobre el elemento, entonces Copiar y luego Copiar XPath

También debe aplicar lo mismo a las secciones de descripción y URL del blog.

A continuación figura la versión final del texto:

Desarrollar un script en Python usando 'Requests' y la  librería'BeautifulSoup ' que scrapee  entradas deblog de este sitio web: "https://www.scrapethissite.com/pages/"
La información que se  necesitaextraer es: 
- Título del blog - XPath: "//*[@id="pages"]/section/div/div/div/div[1]/h3/a" 
- Descripción del blog - XPath: "//*[@id="pages"]/section/div/div/div/div[1]/p"- Url del blog 
- XPath: "//*[@id="pages"]/section/div/div/div[1]/h3/a"

Al final, el script debe imprimir los resultados y almacenarlos en un archivo csv.

Paso 2 - Configurar el script Python:

Aquí está la secuencia de comandos que ChatGpt salida:

import requests
from bs4 import BeautifulSoup
import csv
# URL of the website to scrape
url = 'https://www.scrapethissite.com/pages/'
# Send a GET request to the URL
response = requests.get(url)
# Parse the page content using BeautifulSoup
soup = BeautifulSoup(response.text, 'html.parser')
# List to store the scraped data
blogs = []
# Locate the sections containing blog information
# Using the provided XPath details converted to BeautifulSoup format
blog_sections = soup.select('#pages section div div div div')
for section in blog_sections:
   # Extract the blog title
   title_tag = section.select_one('h3 a')
   title = title_tag.text.strip() if title_tag else 'No title'
   # Extract the blog description
   description_tag = section.select_one('p')
   description = description_tag.text.strip() if description_tag else 'No description'
   # Extract the blog URL
   url_tag = section.select_one('h3 a')
   blog_url = url_tag['href'] if url_tag else 'No URL'
   # Append the data to the blogs list
   blogs.append({'Title': title, 'Description': description, 'URL': blog_url})
# Print the extracted information
for blog in blogs:
   print(f"Title: {blog['Title']}\nDescription: {blog['Description']}\nURL: {blog['URL']}\n")
# Save the data to a CSV file
csv_file = 'blogs.csv'
with open(csv_file, mode='w', newline='') as file:
   writer = csv.DictWriter(file, fieldnames=['Title', 'Description', 'URL'])
   writer.writeheader()
   writer.writerows(blogs)
if __name__ == '__main__':
   print(f"Data saved to {csv_file}")

Antes de ejecutar este script, asegúrese de haber instalado las bibliotecas 'requests' y 'bs4'.

pip install peticiones bs4

He aquí un breve resumen de lo que hace este script:

  • Bibliotecas de importación: Importapeticiones, BeautifulSoup y csv para gestionar peticiones HTTP, analizar HTML y gestionar operaciones con archivos CSV.
  • Obtener contenido de página web: Utiliza peticiones para enviar una petición GET a la URL especificada y recuperar el contenido HTML de la página.
  • Analizar contenido HTML: Analiza el HTML recuperado utilizando BeautifulSoup para facilitar la extracción de datos.
  • Extraer información del blog:
    • Título del blog: Extrae el título de cada entrada del blog.
    • Descripción del blog: Extrae la descripción de cada entrada del blog.
    • URL del blog: Extrae la URL de cada entrada del blog.
  • Almacenar datos: Almacena los datos extraídos en una lista de diccionarios.
  • Imprimir datos extraídos: Imprime el título, la descripción y la URL de cada entrada del blog.
  • Guardar datos en CSV: guarda los datos extraídos en un archivo CSV denominado blogs.csv.

Paso 3 - Pruebe el guión:

Una vez que hayas instalado las librerías necesarias, crea un archivo Python con el nombre que prefieras. A continuación, pega el script en el archivo y guárdalo.

Una vez ejecutado el script, imprimirá los datos de cada blog y generará un archivo CSV llamado "blogs.csv". Este es su aspecto

Conclusión

ChatGPT es una valiosa herramienta para desarrolladores, científicos de datos y entusiastas del web scraping. Al aprovechar sus capacidades, puede mejorar sus scripts de web scraping, mejorar la precisión y reducir el tiempo de desarrollo. Tanto si está extrayendo datos para análisis de mercado, monitorización de redes sociales o investigación académica, ChatGPT puede ayudarle a alcanzar sus objetivos de forma más eficiente.