Le web scraping extrait des informations depuis des pages. Dans un audit SEO, cela peut servir à relever titres, liens ou canonicals. Avant de collecter un grand volume, définissez les champs nécessaires et choisissez entre HTML reçu, page rendue et API disponible.
Un exemple local reproductible
Pour illustrer une extraction de titre, enregistrez un fichier de test page.html puis analysez-le avec la bibliothèque standard Python :
from html.parser import HTMLParser
from pathlib import Path
class TitleParser(HTMLParser):
def __init__(self):
super().__init__()
self.in_title = False
self.parts = []
def handle_starttag(self, tag, attrs):
if tag == 'title': self.in_title = True
def handle_endtag(self, tag):
if tag == 'title': self.in_title = False
def handle_data(self, data):
if self.in_title: self.parts.append(data)
parser = TitleParser()
parser.feed(Path('page.html').read_text(encoding='utf-8'))
print(''.join(parser.parts).strip())
Cet exemple extrait le texte du titre du fichier. Il ne charge pas JavaScript et ne constitue pas un crawler complet.
Choisir la bonne source
Si la donnée est ajoutée après exécution de scripts, le HTML initial peut ne pas la contenir. Si une API officielle fournit directement le champ, elle peut être plus adaptée qu’un sélecteur visuel fragile. Comparez quelques pages manuellement avant d’étendre la collecte.
Contrôler la qualité de l’export
Gardez URL, date, statut HTTP et champs manquants. Un export rempli de chaînes vides peut révéler un changement de gabarit, pas une absence réelle de données. Limitez la fréquence et le périmètre aux accès autorisés ; l’automatisation ne supprime pas les contraintes du service.
Pour poursuivre, distinguez HTML et rendu, SEO JavaScript et exploration d’un site. La documentation de HTMLParser détaille les limites de ce parseur.