Screaming Frog est un outil de crawl de site web qui permet de collecter des données sur les pages d’un site web. Il est possible de créer un logiciel équivalent en utilisant Python et plusieurs bibliothèques différentes. Voici une approche possible pour créer un tel logiciel :
- Utiliser la bibliothèque requests pour envoyer des requêtes HTTP à un site web et récupérer les réponses.
- Analyser le code HTML de la réponse avec une bibliothèque telle que beautifulsoup4 ou lxml pour extraire les données souhaitées, comme les liens vers les autres pages du site, les balises title et meta, etc.
- Stocker ces données dans un format de votre choix, comme une base de données ou un fichier CSV.
- Répéter les étapes 1 à 3 pour chaque page du site web à crawler, en suivant les liens trouvés dans chaque page pour naviguer à travers le site.
Voici un exemple de code Python qui utilise la bibliothèque requests et beautifulsoup4 pour envoyer une requête HTTP à une page web, extraire le titre de la page et imprimer le résultat :
import requests
from bs4 import BeautifulSoup
def crawl_site(url):
# Envoyer une requête HTTP à la page web
response = requests.get(url)
# Analyser le code HTML de la réponse avec Beautiful Soup
soup = BeautifulSoup(response.text, "html.parser")
# Extraire le titre de la page
title = soup.title.string
# Extraire la balise meta description
meta_description = soup.find("meta", {"name": "description"})["content"]
# Extraire la balise link canonical
link_canonical = soup.find("link", {"rel": "canonical"})["href"]
# Imprimer les informations trouvées
print(f"URL: {url}")
print(f"Title: {title}")
print(f"Meta description: {meta_description}")
print(f"Link canonical: {link_canonical}")
print(f"HTTP status code: {response.status_code}")
# Extraire les liens vers les autres pages du site
links = []
for link in soup.find_all("a"):
href = link.get("href")
if href and href.startswith("http"):
links.append(href)
# Répéter le processus pour chaque lien trouvé
for link in links:
crawl_site(link)
Cette fonction utilise la méthode find de Beautiful Soup pour chercher les balises meta description, link canonical et extraire leur contenu respectivement. Elle utilise également la propriété status_code de la réponse HTTP pour récupérer le code HTTP de la page.
Vous pouvez adapter cette fonction pour stocker ces informations dans une base de données ou un fichier CSV au lieu de les imprimer. Vous pouvez également ajouter des fonctionnalités supplémentaires, comme la gestion des erreurs et des redirections, l’exclusion de certains liens ou la gestion des cookies.