Parser html

Soyez le premier à donner votre avis sur cette source.

Vue 22 438 fois - Téléchargée 1 782 fois

Description

Ce code est une lib qui permet d'accéder la structure d'une page HTML

Sa tolérance sur la qualité du code HTML est certes inférieur aux navigateurs mais suffisent pour la plupart des applis ou je l'ai utilisé

Source / Exemple :


(tout est dans le zip)

Conclusion :


Bientot quand le html sera bien formaté, on pourra utiliser un parseur xml mais pour l'instant... n'hésitez par à le tester et a me faire parvenir l'url des pages qui mettre ce code a genoux :(

Codes Sources

A voir également

Ajouter un commentaire Commentaires
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 60
9 janv. 2007 à 19:26
C'est assez dur de faire quelques chose qui tient la route dut à la souplesse de l'HTML bien sûr ;-)
Quelques remarques en vrac après une RAPIDE lecture:

- Dans la classe MainClass, l'url de teste (google) n'est pas valide.
- Pourquoi utiliser sans cesse le nom des classes (System.String, System.Boolean) plutôt que leurs mots clefs associés (string, bool) ?
- La méthode GetHtmlChars de HtmlChars retourne toujours null !?
- Détail: pour les types enum, on met en principe des MAJ
- Le code peut être simplifier à certains endroits, exemple:

if (iChars[pChar] == '"')
{
bIsInString = !bIsInString;
iAttributeLength++;
}
else
{
iAttributeLength++;
}

devient

if (iChars[pChar] == '"') bIsInString = !bIsInString;
iAttributeLength++;

autres exemple avec oStackNode.Add(oNode); (peut-être y'en a encore d'autres)

- Les méthodes GetImageReferences, GetScriptReferences, GetLinkTagReferences et GetAnchorReferences sont très redondantes!
- Debug.WriteLine("VAL: '" + sTagValue + "'"); => Debug.WriteLine("VAL: '{0}'", sTagValue);


Voilà pour un début.
Sinon le code à l'air plutôt structuré...
thiosyiasar Messages postés 186 Date d'inscription lundi 11 mars 2002 Statut Membre Dernière intervention 30 novembre 2010 3
9 janv. 2007 à 19:45
effectivement...

ce code est ressorti d'une vielle valise!

une petite remise au propre s'impose...

merci pour tes remarques Bidou

(to be continued...)
cs_GG29 Messages postés 326 Date d'inscription vendredi 23 décembre 2005 Statut Membre Dernière intervention 8 février 2011 17
9 janv. 2007 à 21:01
A la place de if(a == "") on peut utiliser if(a == String.Empty) ou encore
if(String.IsNullOrEmpty(a)) , ce qui est quand même plus jolie à mon goût.
Autrement ce code peut être pratique dans une appli.
cs_badrbadr Messages postés 475 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 3 novembre 2008 1
10 janv. 2007 à 12:27
Une alternative est d'utiliser le contrôle WebBrowser qui permet d'accéder à l'arbre DOM de la page html. C'est aussi tolérant que peut l'être Internet Explorer :)
Mathrb Messages postés 7 Date d'inscription jeudi 5 avril 2007 Statut Membre Dernière intervention 22 juin 2010
13 mars 2009 à 00:55
Merci
C'est ce que je cherchais

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.