PORTE_BLINDEE
Messages postés30Date d'inscriptiondimanche 10 décembre 2006StatutMembreDernière intervention15 avril 2008
-
12 juin 2007 à 17:41
NAJEHROUA
Messages postés1Date d'inscriptionmercredi 21 octobre 2009StatutMembreDernière intervention24 février 2010
-
24 févr. 2010 à 02:01
Bonjour
Je souhaite parser le code dune page html pour récuper liens et URL d'images
Jutilise un webbrowser caché.
Le probleme c'est que le webbrowser charge toute la page comme un vrai browser (images, bannieres, video, musique alors que moi jai juste besoin du code!
par exemple si je charche ce site http://www.annabella.net/music.html jentend la music en background...
Mon idée est d'arréter le chargement de la page des que je récupere les liens comme sa
les liens sont chargés dès le readystate Interactive. donc jessai:
Private Sub WebBrowser1_ProgressChanged(Byval ..., Byref...) Handles WebBrowser1.ProgressChanged
htmldoc = WebBrowser1.Document()
For i = 0 To htmldoc.Links.Count - 1
ListBox1.Items.Add(htmldoc.Links.Item(i).GetAttribute("HREF"))
Next
If WebBrowser1.ReadyState = WebBrowserReadyState.Interactive Then
WebBrowser1.Stop() << cette methode ne marche pas
Exit Sub
End If
End sub
Cependant la méthode WebBrowser1.Stop() ne marche pas et la page se charge completement jusqu'à completed et ...la music se lance
Jai tester une autre méthode sans webbrowser avec .createDocumentFromURL(url) de IHTMLDOCUMENT de la library MSHTML
bon sa marche....mais le probleme c'est que jaimerai pouvoir récupérer les images de pages qui demandent un windows Login/mot de passe et récupérer les liens/images en passant par un proxy...
Jignore si c'est possible avec les interfaces de MSHTML
J'attend bcp de vous!! sa fé des jours que je cherche une méthode...
PORTE_BLINDEE
Messages postés30Date d'inscriptiondimanche 10 décembre 2006StatutMembreDernière intervention15 avril 2008 12 juin 2007 à 17:53
L'autre solution est de recupérer juste le code htm d'une part avec des méthode simple (avec webclient ou webrequest)
et le parser d'autre part avec une library externe
Est-ce que vous connaissez des source VB.NET de parseur HTML. j'en ai trouvé de tres bonnes mais en C# malheureusement
Sinon jai trouvé html agility
http://www.codeplex.com/htmlagilitypack je pense qu'il faut compiler la source en bibliotheque de classes et on peux sen serrvir dans tout les languages DOT NET. (enfin je crois)
Ensuite utilise les regex pour extraire touts les liens :
Dim regz As Regex = New Regex("href=" & Chr(34) & "([\S\s^" & Chr(34) & "]*?)" & Chr(34))
Dim res1 As String = Get_request("http://www.google.fr/")
Dim tab As MatchCollection = regz.Matches(res1)
For i As Integer = 0 To tab.Count - 1
MessageBox.Show(tab.Item(i).Value)
Next
PORTE_BLINDEE
Messages postés30Date d'inscriptiondimanche 10 décembre 2006StatutMembreDernière intervention15 avril 2008 13 juin 2007 à 03:51
WOUHOUUU!!!
l'objet de mes problemes était ke les URL récupérée était des adresses relatives ../../../..page.htm :-/
mais avec System.Uri.TryCreate on peut retrouver construire une url absolue a partir s'une relative exelent pile poil ce que je charchais (depuis des jours...)
bref plus besoin de parseur Ta méthode marche et est super rapide. de plus je peux me conecter à des pages avec login/pass puisque c'est moi qui décide la maniere de récupérer le code*
si je veux les images embedded je recherche "src="
hvb
Messages postés939Date d'inscriptionvendredi 25 octobre 2002StatutMembreDernière intervention27 janvier 20093 20 juin 2007 à 18:07
Tu devrais créer un topic spécialement sur ce sujet (que tu évoques déja sur ma source sur les Requetes HTTP), car hormis l'auteur de la première question et moi (qui recevons donc les notifier) je pense que peu de monde risque de te repondre ici.
Sache en tout cas que le choix d'automatiser les requetes est je pense, la méthode la plus propre, meme si il doit etre possible de bidouiller avec le composant webbrowser, ou bien à coup de sendkeys. (mais la je ne cautionne pas lol)