Scraping Web avec ChatGPT

Guides, Comment faire, Le scraping, Août-20-20245 minutes de lecture

Le web scraping est un outil puissant pour les développeurs, les data scientists, les spécialistes du marketing numérique et bien d'autres personnes qui souhaitent extraire des données précieuses des sites web. Si vous cherchez à améliorer votre expérience du web scraping, l'utilisation des capacités de ChatGPT peut vous être d'une grande aide. Ce blog vous guidera dans l'utilisation de ChatGPT pour créer des scripts de web scraping robustes, efficaces et fiables.

Introduction à ChatGPT

ChatGPT, alimenté par OpenAI, est un modèle de langage de pointe conçu pour comprendre et générer des textes semblables à ceux des humains. Il s'appuie sur le traitement du langage naturel (NLP) pour aider à la réalisation de diverses tâches, allant de la création de contenu à l'aide au codage. Grâce à sa capacité à comprendre le contexte et à fournir des suggestions intelligentes, ChatGPT est devenu un atout précieux pour les développeurs et les scientifiques des données.

Qu'est-ce que ChatGpt ?

ChatGPT signifie "Chat Generative Pre-trained Transformer". Il s'agit d'un type d'intelligence artificielle capable de générer du texte en fonction des données qu'il reçoit. Bien qu'il soit connu pour ses capacités de conversation, ses applications vont bien au-delà du simple dialogue.

Utilisation de ChatGpt dans le web scraping

  • Assistance au code : Aide à l'écriture et au débogage de scripts de web scraping.
  • Recommandations pour la bibliothèque : Suggérer des outils comme Beautiful Soup, Scrapy, Selenium...
  • Meilleures pratiques : Conseils sur les techniques de scraping éthiques et efficaces.

Limites de ChatGPT dans le domaine de l'exploration du Web

  • Contournement des mesures de sécurité : ChatGPT ne peut pas aider à contourner les mesures de sécurité comme le blocage IP ou d'autres technologies anti-scraping au-delà des limites éthiques.
  • Collecte de données en temps réel : ChatGPT ne peut pas interagir avec les sites web en temps réel pour collecter des données.
  • Développement d'outils personnalisés : ChatGPT ne peut pas développer des outils logiciels personnalisés ou des cadres pour le web scraping.

Exemple d'utilisation de ChatGpt pour le web scraping

Bien que le chat ne permette pas d'explorer directement un site web, il peut certainement nous inspirer des idées sur la manière d'aborder le processus d'exploration du web. En outre, il peut fournir des scripts que nous pouvons utiliser dans nos projets d'exploration du web.

Prenons un exemple simple. Imaginons que nous voulions récupérer un site web d'articles de blogs et extraire chaque article de blog, puis le stocker dans un fichier csv. Les informations que nous voulons sauvegarder sont le titre, la description et l'URL du blog.

Étape 1 - Composer une invite ChatGpt :

Tout d'abord, nous devons créer une invite pour ChatGPT qui indique clairement ce dont nous avons besoin. Dans cet exemple, nous utiliserons le site web (https://www.scrapethissite.com/pages) pour extraire le titre, la description et l'URL de chaque blog.Pour instruire ChatGpt correctement, nous devons fournir les sélecteurs du premier blog. Pour ce faire, cliquez avec le bouton droit de la souris sur l'élément, puis cliquez sur inspecter

Ensuite, nous voulons récupérer le sélecteur Xpath en cliquant à nouveau avec le bouton droit de la souris sur l'élément, puis en effectuant la commande Copier puis Copier XPath

Il en va de même pour la description et l'URL du blog.

Vous trouverez ci-dessous la version finale de l'invitation :

Développez un script Python utilisant 'Requests' et la  bibliothèque'BeautifulSoup' qui récupère les  articles deblog de ce site web : "https://www.scrapethissite.com/pages/"
Les informations à extraire sont les suivantes : 
- Titre du blog - XPath : "//*[@id="pages"]/section/div/div/div/div[1]/h3/a" 
- Description du blog - XPath : "//*[@id="pages"]/section/diviv/diviv[1]/p"- Url du blog 
- XPath : "//*[@id="pages"]/section/diviv/diviv[1]/h3/a"

À la fin, le script doit imprimer les résultats et les stocker dans un fichier csv.

Étape 2 - Configuration du script Python :

Voici le script que ChatGpt a généré :

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

Avant d'exécuter ce script, assurez-vous que vous avez installé les bibliothèques 'requests' et 'bs4'.

pip install requests bs4

Voici un bref aperçu de ce que fait ce script :

  • Bibliothèques d'importation : Importe desrequêtes, BeautifulSoup et csv pour traiter les requêtes HTTP, analyser le HTML et gérer les opérations sur les fichiers CSV.
  • Récupérer le contenu d'une page web : Utilise des requêtes pour envoyer une requête GET à l'URL spécifiée et récupérer le contenu HTML de la page.
  • Parse HTML Content : Analyse le contenu HTML récupéré à l'aide de BeautifulSoup pour faciliter l'extraction des données.
  • Extraire les informations du blog :
    • Titre du blog : Extrait le titre de chaque article de blog.
    • Description du blog : Extrait la description de chaque article de blog.
    • URL du blog : Extrait l'URL de chaque article de blog.
  • Stocker les données : Stocke les données extraites dans une liste de dictionnaires.
  • Imprimer les données extraites : Imprime le titre, la description et l'URL de chaque article de blog.
  • Enregistrer les données au format CSV : enregistre les données extraites dans un fichier CSV nommé blogs.csv.

Étape 3 - Tester le script :

Une fois que vous avez installé les bibliothèques nécessaires, créez un fichier Python avec le nom de votre choix. Collez ensuite le script dans le fichier et enregistrez-le.

Une fois le script exécuté, il imprime les données de chaque blog et génère un fichier CSV nommé "blogs.csv". Voici à quoi il ressemble :

Conclusion

ChatGPT est un outil précieux pour les développeurs, les scientifiques des données et les amateurs de web scraping. En tirant parti de ses capacités, vous pouvez améliorer vos scripts de web scraping, améliorer la précision et réduire le temps de développement. Que vous extrayiez des données pour l'analyse du marché, la surveillance des médias sociaux ou la recherche universitaire, ChatGPT peut vous aider à atteindre vos objectifs plus efficacement.