Frage

Ich muss eine Webseite erstellen und die Adressinformationen aus der Seite extrahieren.Einige sind einfacher als andere.Ich suche nach einem Firefox-Plugin, einer Windows-App oder einem VB.NET-Code, der mir dabei hilft.

Idealerweise hätte ich gerne eine Webseite in unserem Administrator (ASP.NET/VB.NET), auf der Sie eine URL eingeben und die Seite verschrottet wird und ein Datensatz zurückgegeben wird, den ich in ein Raster einfügen kann.

War es hilfreich?

Lösung

Wenn Sie das Format der Seite kennen (z. B. wenn sie alle wie die Seite „ashnha.com“ aussehen), ist es ziemlich einfach, VB.NET-Code zu schreiben, der Folgendes tut:

  1. Ein ... kreieren System.Net.WebRequest und die Antwort in einen String einlesen.
  2. Dann erstellen Sie eineSystem.Text.RegularExpressions.Regexund iterieren Sie die Sammlung von Übereinstimmungen zwischen dieser und der String, die Sie gerade abgerufen haben.Erstellen Sie für jede Übereinstimmung eine neue Zeile in einem DataTable.

Das Schwierige daran ist, den regulären Ausdruck zu schreiben, was eine Art schwarze Kunst darstellt.Sehen regexlib.com für jede Menge Tools, Bücher usw. über reguläre Ausdrücke.

Wenn das HTML-Format für einen regulären Ausdruck nicht klar genug definiert ist, müssen Sie sich wahrscheinlich auf ein gewisses Maß an Benutzereingriffen verlassen, um herauszufinden, welche Bits die Adressen sind ...

Andere Tipps

Auf welche Art von Adressinformationen beziehen Sie sich?

Es gibt ein paar Firefox-Plugins Operator & Schwänze mit denen Sie Mikroformate aus Webseiten extrahieren und anzeigen können.

Aza Raskin hat darüber gesprochen, zu erkennen, wann ausgewählter Text eine Adresse in seinem Text ist Firefox-Vorschlag:Ein besserer neuer Tab-Bildschirm.Noch kein Code, aber ich erwähne ihn, da möglicherweise in Zukunft Code in Firefox vorhanden sein wird, um dies zu tun.

Alternativ können Sie auch die verwenden Kartenbefehl in Ubiquity, allerdings müssten Sie die Adressen selbst auswählen.

Informationen zum allgemeinen HTML-Screen-Scraping in VB.NET finden Sie hier HTML-Agility-Paket.Viel einfacher, als es mit Regex zu versuchen (es sei denn, Sie sind bereits ein Regex-Ninja!)

Die Seite, die Sie in Ihrer Antwort erwähnt haben, lässt sich leicht automatisieren, da die Adressen ein einheitliches Format haben.

Den Benutzern jedoch zu ermöglichen, auf eine beliebige Seite zu verweisen, ist eine viel schwierigere Aufgabe.Die Daten könnten in jedem beliebigen Format vorliegen.Sie könnten etwas schreiben, um den gesamten Text wegzuwerfen, zu erraten, wie er aufgeteilt ist, zu versuchen, Teile wie Länder- und Staatsnamen, Telefonnummern usw. zu erkennen und dann Ihre Ergebnisse mit einer Schnittstelle anzuzeigen, die es den Benutzern ermöglicht, fehlende Abschnitte zu vervollständigen und zu verschieben Teiler und identifizieren Sie die Teile, die Sie übersehen haben oder nicht wollten.

Es ist jedoch nicht einfach, und eine Schnittstelle zu erstellen, die einen großen Vorteil gegenüber dem einfachen Ausschneiden und Einfügen in validierte Formularfelder bietet, wäre meiner Meinung nach eine ziemliche Leistung – mich würde interessieren, wie Sie damit klarkommen!

BEARBEITEN:Mir ist gerade diese andere Frage aufgefallen, die möglicherweise einiges von dem abdeckt, was Sie tun möchten:Analysieren Sie verwendbare Straße, Stadt, Bundesland und Postleitzahl aus einer Zeichenfolge

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top