Question

Je dois prendre une page Web et extraire les informations d'adresse de la page.Certains sont plus faciles que d'autres.Je recherche un plugin Firefox, une application Windows ou un code VB.NET qui m'aidera à y parvenir.

Idéalement, j'aimerais avoir une page Web sur notre administrateur (ASP.NET/VB.NET) où vous entrez une URL et elle supprime la page et renvoie un ensemble de données que je peux mettre dans une grille.

Était-ce utile?

La solution

Si vous connaissez le format de la page (par exemple, si elles ressemblent toutes à cette page ashnha.com), alors il est assez facile d'écrire du code VB.NET qui fait ceci :

  1. Créer un System.Net.WebRequest et lisez la réponse dans une chaîne.
  2. Créez ensuite unSystem.Text.RegularExpressions.Regexet itérez sur la collection de matchs entre cela et la chaîne que vous venez de récupérer.Pour chaque match, créez une nouvelle ligne dans un DataTable.

Le plus difficile est d’écrire l’expression régulière, ce qui est un peu un art noir.Voir regexlib.com pour de nombreux outils, livres, etc. sur les expressions régulières.

Si le format HTML n'est pas suffisamment bien défini pour une expression régulière, vous devrez probablement compter sur une certaine intervention de l'utilisateur afin d'identifier quels bits sont les adresses...

Autres conseils

À quel type d’informations d’adresse faites-vous référence ?

Il existe quelques plugins FireFox Opérateur & Queues qui vous permettent d'extraire et de visualiser des microformats à partir de pages Web.

Aza Raskin a parlé de reconnaître le moment où le texte sélectionné est une adresse dans son Proposition Firefox :Un meilleur écran de nouvel onglet.Pas de code pour l'instant, mais je le mentionne car il pourrait y avoir du code dans Firefox pour le faire à l'avenir.

Alternativement, vous pouvez envisager d'utiliser le commande map dans Ubiquity, même si vous devrez sélectionner les adresses vous-même.

Pour le grattage d'écran HTML général dans VB.NET, consultez Pack d'agilité HTML.Beaucoup plus facile que d'essayer de le Regex (sauf si vous êtes déjà un ninja Regex !)

La page que vous avez mentionnée dans votre réponse serait facile à automatiser, car les adresses sont dans un format cohérent.

Mais permettre aux utilisateurs de pointer vers n'importe quelle page, c'est une tâche beaucoup plus difficile.Les données peuvent être dans n'importe quel format.Vous pouvez écrire quelque chose pour vider tout le texte, deviner comment ils sont divisés, essayer de reconnaître des éléments tels que les noms de pays et d'état, les numéros de téléphone, etc., puis afficher vos résultats avec une interface qui permettra aux utilisateurs de compléter les sections manquantes, de déplacer le texte. diviseurs et identifiez les éléments que vous avez manqués ou qu'ils ne voulaient pas.

Ce n'est pas simple cependant, et créer une interface qui offre un gros avantage par rapport au simple copier-coller dans des champs de formulaire validés serait tout un exploit, je pense - je serais intéressé de savoir comment vous vous en sortez !

MODIFIER:Je viens de remarquer cette autre question qui pourrait couvrir une grande partie de ce que vous voulez faire :Analyser l'adresse postale, la ville, l'état et le code postal utilisables à partir d'une chaîne

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top