C#: meilleure façon de parser rapidement une page html

Karibot Messages postés 89 Date d'inscription mardi 19 janvier 2010 Statut Membre Dernière intervention 21 juin 2016 - 13 nov. 2010 à 10:44
BunoCS Messages postés 15476 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 3 mai 2024 - 17 nov. 2010 à 16:39
Bonjour,
quelle est la meilleure façon de parser une page html et récupérer les liens qu'elle contient?
j'utilise httpwebrequest pour parser la page et pour récupérer les liens j'utilise l'objet regex mais je ne pense pas que ça soit la meilleure méthode. y a t-il un autre truc plus rapide? et où le résultat est fiable à 100% (je parle du nombre de liens). j'aimerai aussi utiliser les multithread pour parser plusieurs pages à la fois mais je ne sais pas comment l'utiliser :( (un tuto pour débutants? qui explique le multithread?)
merci d'avance.

4 réponses

cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 33
14 nov. 2010 à 14:18
Bonjour Karibot

J'utilise la même méthode que toi, et je suis également interessé par quelque chose de plus performant.

Bob
C# is amazing, enjoy it!
0
BunoCS Messages postés 15476 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 3 mai 2024 103
17 nov. 2010 à 09:59
Hello,
On peut s'en sortir à coup de IndexOf() mais je ne pense pas que cela soit plus rapide que les RegEx...

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
Karibot Messages postés 89 Date d'inscription mardi 19 janvier 2010 Statut Membre Dernière intervention 21 juin 2016 2
17 nov. 2010 à 16:33
je pensais plus à une fonction qui permet de transformer du contenu html en flux xml, ce qui permet de traiter plus rapidement les noeuds et sortir des choses plus pertinentes...
0
BunoCS Messages postés 15476 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 3 mai 2024 103
17 nov. 2010 à 16:39
Pour m'y être collé, je peux te dire que ce n'est pas toujours faisable.
Ta page html doit être "sans défaut": toutes les balises doivent être fermées, par exemple.

Si, par contre, tu es certain de la validité de ta page et que tu connais bien sa structure, tu peux utiliser Linq.

Pour tester la validité, tu peux essayer de "lire" ta page avec un XmlReader

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
Rejoignez-nous