El scraping de datos es una herramienta poderosa que permite a los usuarios recopilar información automáticamente de sitios web. Este proceso se puede realizar mediante el uso de un script de scraping, que envía una solicitud a un sitio web y extrae los datos relevantes. En este tutorial, enseñaremos a crear un script de scraping de Amazon con Python.
Antes de comenzar, es importante mencionar que el scraping de datos puede ser ilegal dependiendo de la política del sitio web en cuestión. Es importante respetar la privacidad y la propiedad intelectual de los sitios web y obtener permiso antes de extraer cualquier información.
Paso 1: Instalar las bibliotecas necesarias
Para comenzar a crear nuestro script de scraping, debemos instalar las bibliotecas necesarias. En este tutorial, usaremos requests
para enviar solicitudes a Amazon y BeautifulSoup
para analizar y extraer los datos de la página web. Puede instalarlos ejecutando los siguientes comandos en su terminal o línea de comandos:
pip install requests
pip install beautifulsoup4
Para continuar el tutorial, primero debemos entender cómo utilizar el nombre de las clases dentro de un HTML para crear un prompt para ChatGPT. Para ello, es importante saber que BeautifulSoup es una biblioteca de Python que nos permite parsear y navegar por los elementos HTML y XML de una página web. Echa un ojo a los 100 mejores prompts de chatGPT
En este tutorial, vamos a utilizar BeautifulSoup para scrapear un archivo HTML llamado «amazon.html». En el prompt que verás más abajo, se pide que se abra y lea el archivo «amazon.html» y se analice el texto gramaticalmente con BeautifulSoup.
Luego, se pide que se encuentren todos los divs con la clase «sg-col-4-of-24 sg-col-4-of-12 s-result-item s-asin sg-col-4-of-16 AdHolder sg-col s-widget-spacing-small sg-col-4-of-20». Para hacer esto, podemos utilizar el método «find_all» de BeautifulSoup y pasar como argumento el nombre de la clase que queremos encontrar.
Una vez que tenemos la lista de divs con esa clase, debemos buscar dentro de cada uno de ellos los siguientes elementos:
- Título: se encuentra dentro de un span con la clase «a-size-base-plus a-color-base a-text-normal».
- Imagen: se encuentra dentro de una imagen con la clase «s-image».
- Estrellas: se encuentra dentro de un span con la clase «a-icon-alt».
- Precio: se encuentra dentro de un span con la clase «a-price-whole».
- EL ASIN sólo lo he introducido en el prompt de ChatGPT (sin pasarle el nombre de la clase) para que flipeis con la contextualización que hace.
Guía de ChatGPT: Maximo rendimiento
Para buscar estos elementos dentro de cada div, podemos utilizar el método «find» de BeautifulSoup y pasar como argumento el nombre de la clase que queremos encontrar. En el caso de que no encontremos el elemento deseado, podemos usar una estructura try-except para asignar un valor predeterminado (por ejemplo, una cadena vacía).
Finalmente, debemos abrir un archivo JSON llamado «data.json» y escribir en él el título, imagen, estrellas, precio y asin en formato JSON. Para ello, podemos utilizar la biblioteca «json» de Python y escribir en el archivo usando el método «dump«.
Espero que este tutorial te haya ayudado a comprender cómo utilizar el nombre de las clases dentro de un HTML para crear un prompt para ChatGPT.
Vídeo tutorial:
El prompt para generar el código Python:
crea un código en python, que abra y lea el archivo «amazon.html» y analize el texto gramaticalmente con beautifulsoup,
encuentra todos los
div con class=»sg-col-4-of-24 sg-col-4-of-12 s-result-item s-asin sg-col-4-of-16 AdHolder sg-col s-widget-spacing-small sg-col-4-of-20″
por cada div de la lista de arriba, encuentra
try span class=»a-size-base-plus a-color-base a-text-normal»> entonces titulo=span.text
except titulo=»
try encuentra la imagen con img class=»s-image» entonces imagen=img.src
except imagen=»
try encuentra el span con class=»a-icon-alt»> entonces estrellas=img.src
except estrellas=»
try encuentra el span con class=»a-price-whole»> entonces precio=span.text
except precio=»
abre data.json y escribe el titulo, imagen, estrellas, precio y asin en formato json