Extraction automatique de données web

DebutantVBA

XLDnaute Nouveau
Bonjour à tous,

Je souhaiterais extraire de façon automatisée des données provenant de pages web. L'idée serait de créer une boucle qui récupérer l'adresse du site web inscrite dans une case d'une feuille excel, aller sur l'adresse en question, copier + collage spécial des données de cette page dans une autre feuille excel et ainsi de suite en passant aux cases suivantes du fichier excel où se trouvent les autres adresses web.

En pièce jointe un exemple de ce que je souhaiterais obtenir avec dans la première feuille les adresses web et dans les feuilles suivantes des copier coller du contenu des sites web dont a recopié les adresses.

Merci d'avance à tous.
 

Pièces jointes

  • exemple extraction.xlsx
    10.6 KB · Affichages: 220
  • exemple extraction.xlsx
    10.6 KB · Affichages: 220

david84

XLDnaute Barbatruc
Re : Extraction automatique de données web

Bonjour,
connais-tu le langage VBA ? Si oui, il te faudra notamment -via ton code- :
- lancer une navigation
- exploiter le code source d'une page HTML
- interagir avec les éléments d'une page
- rechercher et extraire les informations recherchées
- récupérer le texte de la page
- la recopier sur ta feuille Excel.
Si tu es familiarisé avec VBA, tu peux t'y essayer et l'on peut t'aider.
Par contre, si ce n'est pas le cas, cela me paraît difficile pour un néophyte.
A+
 

DebutantVBA

XLDnaute Nouveau
Re : Extraction automatique de données web

Bonjour,

J'ai quelques notions de VBA alors sur vos conseils je pourrais m'en sortir !!

Merci beaucoup pour cette réponse rapide







Bonjour,
connais-tu le langage VBA ? Si oui, il te faudra notamment -via ton code- :
- lancer une navigation
- exploiter le code source d'une page HTML
- interagir avec les éléments d'une page
- rechercher et extraire les informations recherchées
- récupérer le texte de la page
- la recopier sur ta feuille Excel.
Si tu es familiarisé avec VBA, tu peux t'y essayer et l'on peut t'aider.
Par contre, si ce n'est pas le cas, cela me paraît difficile pour un néophyte.
A+
 

david84

XLDnaute Barbatruc
Re : Extraction automatique de données web

Re
Bon OK.
Regarde ici le lien communiqué par Kiki29 : la démarche est bien expliquée mais il faut avoir la volonté de s'y mettre !
Epluche le tutoriel et les exemples : si tu persistes, cela devrait t'aider grandement.
Un autre lien pour comprendre les bases du langage HTML :
Si tu as des questions suite à cela, reviens avec tes questions et un fichier présentant l'avancée de ton projet et dis-nous où tu bloques.
Bon courage
A+
 

DebutantVBA

XLDnaute Nouveau
Re : Extraction automatique de données web

Bonjour,

J'ai un peu avancé sur le projet en récupérant divers bouts de code notamment grâce aux liens indiqués au cours de nos échanges. J'arrive donc à copier l'adresse d'un site internet, l'ouvrir dans un navigateur, récupérer le contenu de la page et le copier dans une feuille Excel.

Problèmes :

-A chaque exécution, j'ai un message d'erreur "Erreur d'exécution -2147467259 (80004005) Erreur Automation Erreur non spécifiée", il faut alors que je clique sur débogage puis à nouveau exécution du programme pour que celui-ci ouvre un nouveau lien de mon fichier excel et recopie le contenu de celui-ci. Le bug vient de cette ligne "Set IEDoc = IE.document".

- Le contenu est recopié dans une seule case et j'aimerais qu'il soit recopié sous forme de tableau s'étendant sur autant de cellules Excel que contient le tableau au format HTML.

Merci d'avance pour votre aide !
 

Pièces jointes

  • Testrecupetab.xlsm
    20.9 KB · Affichages: 232

david84

XLDnaute Barbatruc
Re : Extraction automatique de données web

Bonjour,
Suis le déroulé du tutoriel pas à pas sans sauter les étapes.
-A chaque exécution, j'ai un message d'erreur "Erreur d'exécution -2147467259 (80004005) Erreur Automation Erreur non spécifiée", il faut alors que je clique sur débogage puis à nouveau exécution du programme pour que celui-ci ouvre un nouveau lien de mon fichier excel et recopie le contenu de celui-ci. Le bug vient de cette ligne "Set IEDoc = IE.document".
Il est pourtant recommandé d'attendre le chargement de la page, ce que tu ne fais pas : il te manque la partie
'On attend le chargement complet de la page
WaitIE IE
et la Sub correspondante
Code:
Sub WaitIE(IE As InternetExplorer)
   'On boucle tant que la page n'est pas totalement chargée
   Do Until IE.readyState = READYSTATE_COMPLETE
      DoEvents
   Loop
End Sub
D'autre part, je te conseille de libérer toutes les variables à la fin de ta boucle et même de quitter IE sinon toutes les pages vont rester ouvertes.
- Le contenu est recopié dans une seule case et j'aimerais qu'il soit recopié sous forme de tableau s'étendant sur autant de cellules Excel que contient le tableau au format HTML.
Il est expliqué dans le tutoriel comment procéder (voir la partie "Cibler un élément").
Tu pourras ainsi récupérer indépendamment toutes les chaînes de caractères que tu désires.
Ensuite, soit tu les places dans un Array que tu reverses ensuite dans la feuille de calcul, soit tu colles chaque chaîne dans la cellule de ton choix.

Maintenant, si tous les éléments voulus se trouvent dans la chaîne ramenée actuellement dans la feuille de calcul, tu peux éventuellement travailler avec une feuille temporaire en scindant la chaîne ramenée (à vérifier de ton côté cependant).
Bon courage
A+
 
Dernière édition:

Discussions similaires

Réponses
6
Affichages
390