Extraire une portion de page HTML à partir d’Access

Dans l’épisode précédent (Enregistrer une page HTML à partir d’Access), vous avez vu comment enregistrer une page Web entière sur disque. Cette fois, on va essayer d’extraire seulement une portion de la page.

Le principe

Une page HTML est décomposée en blocs, délimités par des balises HTML comme body, div, table, etc. Ces blocs sont imbriqués les uns dans les autres. Certains blocs – souvent importants, et en principe uniques sur une page – sont en général nommés par un identifiant (id). Par exemple, la zone centrale de ce blog est une division HTML nommée content.

C’est le code source de la page HTML qui nous donne le fameux id :

Notre objectif est d’extraire le texte de tous les articles du bloc content, en éliminant les bandes latérales du site. A partir de l’id, et en utilisant la méthode DOM getElementById(), on peut extraire la portion de HTML souhaitée.

Le code VBA

La fonction VBA ci-dessous est donc directement dérivée de celle de l’article précédent :

La fonction accepte 3 arguments :

  • Le 1er paramètre de la fonction est l’adresse de la page Web à visiter.
  • Le 2ème paramètre est le chemin complet du fichier à créer sur votre disque.
    Attention : si le fichier pointé existe, il sera écrasé sans avertissement. Vous pouvez toujours améliorer le code ! 🙂
  • Le 3ème paramètre est l’identifiant (id) du bloc HTML à extraire.
  • La fonction fournie renvoie True si la sauvegarde du bloc HTML a pu se faire correctement, et False sinon.
Important
L’exemple de code ci-dessus fait appel à la bibliothèque MSHTML (Microsoft HTML Object Library). Cette bibliothèque doit être associée à votre base de données pour que le programme fonctionne.Pour plus de détails sur les références, consultez cette page.

Tester la fonction

Pour tester la fonction rapidement, utilisez la fenêtre Exécution :

  1. Appuyez sur CTRL + G.
  2. Tapez dans la fenêtre Exécution quelque chose comme :
    ? EnregistrerBlocHTML("http://grenier.self-access.com", "C:\Documents and Settings\Hervé\Mes documents\grenier.html", "content")
    Bien sûr, vous aménagez le chemin du fichier en fonction de votre propre identifiant de session Windows. Et si vous travaillez sur Vista/7, le chemin a plutôt la forme "C:\Users\Hervé\Documents\grenier.html".

Vous aimerez aussi...

2 réponses

  1. Hervé Inisan dit :

    Titi > Bien vu ! J’ai rectifié l’erreur. Merci !

  2. Titi dit :

    Bonsoir.

    Dans l’exemple de test, il y a une erreur = ? EnregistrerHTML(« http://grenier.sel….
    il faut plutot mettre = ? EnregistrerBlocHTML(« http://grenier.sel….

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *