Scraping del web con ChatGPT

Guide, Come fare, Scraping, 20 agosto 20245 minuti di lettura

Il web scraping è uno strumento potente per sviluppatori, data scientist, digital marketer e molte altre persone che desiderano estrarre dati preziosi dai siti web. Se state cercando di migliorare il vostro percorso di web scraping, sfruttare le capacità di ChatGPT può aiutarvi molto. Questo blog vi guiderà nell'uso di ChatGPT per creare script di web scraping robusti, efficienti e affidabili.

Introduzione a ChatGPT

ChatGPT, basato su OpenAI, è un modello linguistico all'avanguardia progettato per comprendere e generare testi simili a quelli umani. Sfrutta l'elaborazione del linguaggio naturale (NLP) per assistere una serie di attività, dalla creazione di contenuti all'assistenza alla codifica. Grazie alla sua capacità di comprendere il contesto e di fornire suggerimenti intelligenti, ChatGPT è diventato una risorsa preziosa per sviluppatori e data scientist.

Che cos'è ChatGpt?

ChatGPT è l'acronimo di "Chat Generative Pre-trained Transformer". È un tipo di intelligenza artificiale in grado di generare testo in base agli input ricevuti. Sebbene sia nota per le sue capacità di conversazione, le sue applicazioni vanno ben oltre il semplice dialogo.

Utilizzo di ChatGpt nello scraping del web

  • Assistenza sul codice: Assistenza nella scrittura e nel debug di script di scraping del Web.
  • Raccomandazioni sulla libreria: Suggerisce strumenti come Beautiful Soup, Scrapy, Selenium...
  • Migliori pratiche: Guida alle tecniche di scraping etiche ed efficienti.

Limitazioni di ChatGPT nello scraping del Web

  • Aggiramento delle misure di sicurezza: ChatGPT non può aiutare ad aggirare le misure di sicurezza come il blocco degli IP o altre tecnologie anti-scraping oltre i limiti etici.
  • Raccolta di dati in tempo reale: ChatGPT non può interagire con i siti web in tempo reale per raccogliere dati.
  • Sviluppo di strumenti personalizzati: ChatGPT non può sviluppare strumenti software o framework personalizzati per il web scraping.

Esempio di utilizzo di ChatGpt per lo scraping del web

Sebbene la chat non possa eseguire direttamente lo scraping di un sito web, può certamente ispirarci idee su come affrontare il processo di scraping del web. Inoltre, può fornire script da utilizzare nei nostri progetti di web scraping.

Esploriamo un semplice esempio. Immaginiamo di voler effettuare lo scraping di un sito web di blog e di estrarre ogni post del blog, per poi memorizzarlo in un file csv. Le informazioni che vogliamo salvare sono il titolo del blog, la descrizione e l'url del blog.

Fase 1 - Comporre il prompt di ChatGpt:

Per prima cosa, dobbiamo creare un prompt per ChatGPT che indichi chiaramente ciò di cui abbiamo bisogno. In questo esempio, utilizzeremo il sito web (https://www.scrapethissite.com/pages) per estrarre il titolo, la descrizione e l'URL di ogni blog. Per istruire correttamente ChatGpt, dobbiamo fornire i selettori del primo blog. Per farlo, fare clic con il tasto destro del mouse sull'elemento e poi fare clic su ispeziona

Dopo di che vogliamo prendere il selettore Xpath facendo di nuovo clic con il tasto destro del mouse sull'elemento, quindi Copia e poi Copia XPath

Lo stesso vale per le sezioni descrizione e URL del blog.

Di seguito è riportata la versione finale del prompt:

Sviluppare uno script Python utilizzando la libreria 'Requests' e 'BeautifulSoup' per lo scraping dei  postdel blog da questo sito web: "https://www.scrapethissite.com/pages/"
Le informazioni daestrarre sono: 
- Titolo del blog - XPath: "//*[@id="pages"]/section/div/div/div/div[1]/h3/a" 
- Descrizione del blog - XPath: "//*[@id="pages"]/section/div/div/div/div[1]/p"- Url del blog 
- XPath: "//*[@id="pages"]/section/div/div/div/div[1]/h3/a"

Alla fine, lo script deve stampare i risultati e memorizzarli in un file csv.

Passo 2 - Impostazione dello script Python:

Ecco lo script prodotto da ChatGpt:

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}")

Prima di eseguire questo script, assicurarsi di aver installato le librerie 'requests' e 'bs4'.

pip installa le richieste bs4

Ecco una breve panoramica di ciò che fa questo script:

  • Librerie di importazione: Importarichieste, BeautifulSoup e csv per gestire le richieste HTTP, il parsing HTML e le operazioni sui file CSV.
  • Recuperare il contenuto della pagina web: Utilizza le richieste per inviare una richiesta GET all'URL specificato e recuperare il contenuto HTML della pagina.
  • Analizza il contenuto HTML: Analizza l'HTML recuperato usando BeautifulSoup per facilitare l'estrazione dei dati.
  • Estrarre le informazioni del blog:
    • Titolo del blog: Estrae il titolo di ogni post del blog.
    • Descrizione del blog: Estrae la descrizione di ogni post del blog.
    • URL del blog: Estrae l'URL di ciascun post del blog.
  • Memorizza i dati: Memorizza i dati estratti in un elenco di dizionari.
  • Stampa dei dati estratti: Stampa il titolo, la descrizione e l'URL di ciascun post del blog.
  • Salva i dati in CSV: salva i dati estratti in un file CSV denominato blogs.csv.

Fase 3 - Testare lo script:

Una volta installate le librerie necessarie, creare un file Python con il nome desiderato. Quindi, incollare lo script nel file e salvarlo.

Una volta eseguito lo script, esso stamperà i dati per ogni blog e genererà un file CSV denominato "blogs.csv". Ecco come si presenta:

Conclusione

ChatGPT è uno strumento prezioso per sviluppatori, data scientist e appassionati di web scraping. Sfruttando le sue capacità, potete migliorare i vostri script di scraping web, migliorare l'accuratezza e ridurre i tempi di sviluppo. Sia che stiate estraendo dati per analisi di mercato, monitoraggio dei social media o ricerca accademica, ChatGPT può aiutarvi a raggiungere i vostri obiettivi in modo più efficiente.