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

Signaler
Messages postés
89
Date d'inscription
mardi 19 janvier 2010
Statut
Membre
Dernière intervention
21 juin 2016
-
Messages postés
14952
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
25 janvier 2021
-
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

Messages postés
834
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
14 janvier 2017
30
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!
Messages postés
14952
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
25 janvier 2021
93
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...
Messages postés
89
Date d'inscription
mardi 19 janvier 2010
Statut
Membre
Dernière intervention
21 juin 2016
2
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...
Messages postés
14952
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
25 janvier 2021
93
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...