Télécharger une page web avec touts les fichiers qu'elle contient

Messages postés
5
Date d'inscription
mardi 25 juillet 2006
Statut
Membre
Dernière intervention
13 août 2006
-
Messages postés
50
Date d'inscription
lundi 7 avril 2003
Statut
Membre
Dernière intervention
21 août 2013
-
salut, merci d'avoir lire ce message
mon probleme est de telecharger une page web complette avec touts les fichiers(images,doc...) qu'elle peut contenir, j'ai pu telecharger seulement la page html mais j'arrive pas à telecharger les images qui peuves etres contenues
stp si vous avez une idée ou un bou de code n'hesitez pas!!!
merci...

6 réponses

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut,

aide toi de cette source (pense à chercher dans le moteur de recherche stp, merci) :

http://www.vbfrance.com/codes/TELECHARGEMENT-PAGES-WEB_1079.aspx

@++

--Mortalino--
Le Mystérieux Chevalier "Provençal, le Gaulois"
Messages postés
5
Date d'inscription
mardi 25 juillet 2006
Statut
Membre
Dernière intervention
13 août 2006

mercie mais cette source telecharge seulement la page web sans les image...
Messages postés
5
Date d'inscription
mardi 25 juillet 2006
Statut
Membre
Dernière intervention
13 août 2006

mercie mais cette source telecharge seulement la page web sans les image...
Messages postés
50
Date d'inscription
lundi 7 avril 2003
Statut
Membre
Dernière intervention
21 août 2013

Salut,

Pour télécharger les images et les autres documents, tu dois rechercher leurs chemins dans le fichier html puis les télécharger un à un.
Le premier se fait avec les expression régulières (System.Text.RegularExpressions).
ex:
Dim ofd As New OpenFileDialog
ofd.Filter = "Document HTML|*.html;*.htm"
Dim d As DialogResult = ofd.ShowDialog
If d = Windows.Forms.DialogResult.OK Then
Dim sr As New System.IO.StreamReader(ofd.FileName, True)
Dim reg As New System.Text.RegularExpressions.Regex("src\s*=\s*(?:""(?<1>[^""]*)""|(?<1>\S+))")
Dim m As System.Text.RegularExpressions.MatchCollection = reg.Matches(sr.ReadToEnd)
Console.WriteLine("Nombre d'éléments trouvés: " & m.Count.ToString())
For Each rm As System.Text.RegularExpressions.Match In m
Console.WriteLine(rm.Groups(1).Value)
Next
sr.Close()
End If

Le second se fait avec le System.Net.WebClient().
ex:
Dim wc As New System.Net.WebClient()
Try
wc.DownloadFile({url}, {dossierLocalSauvegarde})
wc.Dispose()
Catch exc As System.Net.WebException
'Nothing
End Try
C'est pas commenté pour que tu comprennes par toi même, Google est ton ami et le moteur de recherche de ce site aussi.
En premier lieu, je t'invite à aller voir MSDN pour les expressions régulières par exemple.

Voilà, au revoir, bon courage!

PS: Un effort en Français et en orthographe!!!
Messages postés
5
Date d'inscription
mardi 25 juillet 2006
Statut
Membre
Dernière intervention
13 août 2006

ok mais le probleme c'est que ce code que vous avez n'est pas en vb6
Messages postés
50
Date d'inscription
lundi 7 avril 2003
Statut
Membre
Dernière intervention
21 août 2013

C'est similaire, si tu sais télécharger une page alors tu sauras télécharger autre chose, là n'est pas le problème. Le problème c'est d'extraire les chaines d'adresse web complète ou relative (http://www.monsite.fr/index/haut/monimage.jpg ou /index/haut/mapub.gif)

A partir de ou {javascript}.src= "(element)" ou...
Où on s'intéresse à 'element', on pourrait rechercher tous les src ou href pour du css par exemple en passant par leur index (String.IndexOf ou un truc comme ça) mais c'est assez chiant.
Ca donne un truc du genre:

Rechercher src au point de l'index en cours dans la chaine
Extraire la sous chaine de l'index+5 de src =" jusqu'au symbole " suivant
Et retenir l'index (en cours) de la fin de la chaine pour ne pas boucler dans le vide

La meilleure solution c'est les expressions régulières où avec le pattern suivant:
src\s*=\s*(?:""(?<1>[^""]*)""|(?<1>\S+))

on arrive à retrouver nos belles adresses:
http://www.monsite.fr/index/haut/monimage.jpg
/index/haut/mapub.gif

en s'intéressant à l'endroit qu'on lui demande d'extraire (?<1> dans le pattern)

Ca devrait être possible aussi en VB6, regarde là et , et bonne chance!