Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Récupération de code source html

3 réponses
Avatar
Gnafron
Bonjour à tous !

je suis avec attention ce groupe de temps à autres et j'ai rarement
l'occasion de poser de questions sur Excel ou VBA, les tâches que j'exécute
avec Excel étant assez primaires.

Néanmoins, je suis en ce moment sur un projet (rien d'exceptionnel, un cas
d'école, je fais ça juste pour le fun pendant mes week-end) de récupération
de données d'un site web et j'explore avec intérêt les fonctionnalités
d'Excel 2003 avec les requêtes sur le web (outil qui m'impressionne
fortement, d'ailleurs).

Je me confronte à devoir récupérer des données "image" qui sont
irrécupérables dans l'état, sauf si je récupère le code source HTML de la
page web en question, puisque chaque image est accompagnée d'un 'hint' qui
me serait possible de récupérer au moment de parser le texte grâce à des
macros VBA.

Tous mes essais de copier-coller ou de requête web se sont avérés
infructueux, au mieux je dois passer par le notepad (avec la fonction
'afficher le code source' d'IE) et supprimer les balises <> pour qu'Excel
n'interprète pas le texte HTML lors de la copie sur une feuille de classeur.

Voici donc ma question :
est-il possible de récupérer un code source directement par une requête web
ou d'ouvrir une page web et d'en récupérer le code source sur Excel ?
ou bien de pouvoir coller le code source sans qu'il soit interpreté par
Excel et affiché avec les commandes web ?

(pas la peine que je pose la question sur la possibilité d'interpréter des
images avec Excel, n'est-ce pas ? :-P )


Merci de votre aide et longue vie au groupe.


--
Gnafron, etc

3 réponses

Avatar
Michel Pierron
Bonjour Gnafron;
Dans un premier temps, tu peux essayer:

Sub GetSourceCode()
Const URL As String = "http://www.adressebidon.html"
' Create an Http object (use any of the four objects)
Dim Http As Object
'Set Http = CreateObject("Microsoft.XMLHTTP")
'Set Http = CreateObject("MSXML2.ServerXMLHTTP")
'Set Http = CreateObject("WinHttp.WinHttpRequest")
Set Http = CreateObject("WinHttp.WinHttpRequest.5.1")
Http.Open "GET", URL, False
Http.Send
Call BinaryToString(Http.ResponseBody, "c:htmlSource.txt")
Set Http = Nothing
End Sub

Private Sub BinaryToString(Binary, FileName$, Optional CharSet = "")
Dim BinaryStream As Object, BinaryToString As String
Set BinaryStream = CreateObject("ADODB.Stream")
With BinaryStream
.Type = 1 ' (Type Binary)
.Open
.Write Binary
.Position = 0
.Type = 2 ' (Type Text)
.CharSet = "us-ascii"
' Specify charset For the source text (unicode) data.
If Len(CharSet) Then .CharSet = CharSet
BinaryToString = .ReadText
.WriteText BinaryToString
.SaveToFile FileName, 2
End With
Set BinaryStream = Nothing
End Sub

Il ne te restera plus qu'à "parser" le fichier c:htmlSource.txt
MP

"Gnafron" a écrit dans le message de
news:
Bonjour à tous !

je suis avec attention ce groupe de temps à autres et j'ai rarement
l'occasion de poser de questions sur Excel ou VBA, les tâches que
j'exécute

avec Excel étant assez primaires.

Néanmoins, je suis en ce moment sur un projet (rien d'exceptionnel, un cas
d'école, je fais ça juste pour le fun pendant mes week-end) de
récupération

de données d'un site web et j'explore avec intérêt les fonctionnalités
d'Excel 2003 avec les requêtes sur le web (outil qui m'impressionne
fortement, d'ailleurs).

Je me confronte à devoir récupérer des données "image" qui sont
irrécupérables dans l'état, sauf si je récupère le code source HTML de la
page web en question, puisque chaque image est accompagnée d'un 'hint' qui
me serait possible de récupérer au moment de parser le texte grâce à des
macros VBA.

Tous mes essais de copier-coller ou de requête web se sont avérés
infructueux, au mieux je dois passer par le notepad (avec la fonction
'afficher le code source' d'IE) et supprimer les balises <> pour qu'Excel
n'interprète pas le texte HTML lors de la copie sur une feuille de
classeur.


Voici donc ma question :
est-il possible de récupérer un code source directement par une requête
web

ou d'ouvrir une page web et d'en récupérer le code source sur Excel ?
ou bien de pouvoir coller le code source sans qu'il soit interpreté par
Excel et affiché avec les commandes web ?

(pas la peine que je pose la question sur la possibilité d'interpréter des
images avec Excel, n'est-ce pas ? :-P )


Merci de votre aide et longue vie au groupe.


--
Gnafron, etc




Avatar
Gnafron
merci bien !! ;-)

j'essaye pour voir si c'est ce dont j'ai besoin.

--
Gnafron, etc
Avatar
Gnafron
ok, fait, ça m'est utile même si je dois ensuite importer le contenu du
fichier sur Excel afin de lancer ma macro pour parser le texte et en
extraire les infos.

maintenant, j'ai un souci de récupération de données sur cette page web car
il faut que je me log à chaque fois et c'est galère de le faire
manuellement.
J'essaye de passer outre avec les infos sur
http://jacxl.free.fr/cours_xl/cours_xl_jac.html#ouvrir_web, mais je n'accède
pas directement à la page que je veux et il y a un changement d'adresse
(serveur) aléatoire, ça devient plus complexe que je ne pensais :-)

Allez, je continue mes explorations et vous informe/demande de l'aide si
besoin :-)


--
Gnafron, etc