Capture d'écran du code HTML avec C#
J'ai été donné la tâche au travail de capture d'écran l'un de nos hérité d'applications web pour extraire certaines données à partir du code. Les données sont formatées et "devrait" être affiché exactement la même à chaque fois. Je ne suis pas sûr de savoir comment aller à ce sujet. C'est un fichier html avec en-tête et pied de page navigations mais au milieu de tout cela, est que les données dont j'ai besoin.
J'ai besoin d'extraire le Nom de la Société de la valeur, le Nom du Contact, numéro de Téléphone, adresse email, etc.
Voici un exemple de ce à quoi ressemble le code:
...html above here
<br /><br />
<table cellpadding="0" cellspacing="12" border="0">
<tr>
<td valign="top" align="center">
<!-- Company Info -->
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="black">
<table cellspacing="1" cellpadding="0" border="0" width="370">
<tr>
<th>ABC INDUSTRIES</th>
</tr>
<tr>
<td class="search">
<table cellpadding="5" cellspacing="0" border="0" width="100%">
<tr>
<td>
<table cellpadding="1" cellspacing="0" border="0" width="100%">
<tr>
<td align="center" colspan="2"><hr></td>
</tr>
<tr>
<td align="right" nowrap><b><font color="FF0000">Contact Person <img src="/images/icon_contact.gif" align="absmiddle"> :</font></b></td>
<td align="left" width="100%"> Joe Smith</td>
</tr>
<tr>
<td align="right" nowrap><b><font color="FF0000">Phone Number <img src="/images/icon_phone.gif" align="absmiddle"> :</font></b></td>
<td align="left" width="100%"> 555-555-5555</td>
</tr>
<tr>
<td align="right" nowrap><b><font color="FF0000">E-mail Address <img src="/images/icon_email.gif" align="absmiddle"> :</font></b></td>
<td align="left" width="100%"> <a HREF="mailto:[email protected]">joe@joe.com</a></td>
</tr>
more...
Il n'y a plus de code sur l'écran dans une autre structure de la table que j'ai aussi besoin de tirer.
OriginalL'auteur WildBill | 2011-01-03
Vous devez vous connecter pour publier un commentaire.
Vous êtes simplement à la recherche pour obtenir des suggestions sur la façon d'accomplir ceci? Le HTML Agility Pack va probablement être votre meilleur pari pour les DOM l'analyse en général. Il y a peut être un bon peu de bricolage et d'essai et d'erreur pour maintenir votre écran gratter (il y a habituellement pour ce genre de chose), mais que la bibliothèque est assez bonne pour l'analyse de code HTML.
Techniquement, toute analyse XML (même natif de LINQ to XML) devrait faire le tour, mais les sites ont une fâcheuse habitude de ne pas être bien formé, de sorte que vous pouvez exécuter dans de petits maux de tête ici et là.
OriginalL'auteur David
Dans les projets récents, j'ai utilisé avec succès la
WebRequest
et liées classé pour télécharger le code HTML à partir d'une URL et puis SgmlReader analyseur à réellement obtenir l'accès au contenu structuré.OriginalL'auteur Uwe Keim
Si la page de commentaires et de disposition de table de code sont les mêmes à chaque fois appelé, je tirais la page dans une chaîne de caractères et utiliser une série d' .IndexOf et .Sous-chaîne de fonctions pour analyser les données. Utilisez la fonction IndexOf pour trouver le début et la fin des index de chaque champ. Utilisez ces champs d'index dans la fonction de sous-Chaîne à extraire les données.
C'est pas joli, mais fait le travail.
OriginalL'auteur Roan
HtmlDocument peut être utilisé pour traiter les documents HTML. Voir les exemples suivants:
http://weblogs.asp.net/grantbarrington/archive/2009/10/15/screen-scraping-in-c.aspx
http://www.stupidiocy.com/development/web-scraping-using-c/
OriginalL'auteur ShahidAzim
Si vous avez le code HTML stocké dans une chaîne, vous pouvez toujours utiliser les Expressions Régulières avec des groupes de capture à analyser les informations dont vous avez besoin.
Merci pour ça, je vais être sûr de ne jamais recommander encore une fois lol
OriginalL'auteur Russell Durham