Entwickler-Ecke

Basistechnologien - Regex-Befehl für alle Tocher-/Unter-Seiten einer Homepage


C#Quereinsteiger - Mi 04.01.17 17:14
Titel: Regex-Befehl für alle Tocher-/Unter-Seiten einer Homepage
Hallo liebe Foren-Gänger,

ich bin noch relativ neu im Programmier-Universum. Neben meinem Info-Studium,
bildet mich mein Teilzeit-Arbeitgeber sozusagen mit aus.

Meine aktuelle Aufgabe ist es einen Webscraper zu bauen, der den Source-Code der Mainpage
und die aller Tochter-/Unter-Seiten der Website zwischenspeichert und am Ende in der Textbox anzeigt.

Während den Regex-Überlegungen fiel mir ein Problem auf, die Tochter-/Unterseiten werden im HTML-Source auf verschiedene Weisen deklariert.
Ich kenne Leider nicht alle Formen, wie man die Seiten noch erkennt, bisher gesehen:

1. Als kompletter Pfad - bsp.: Mainpage = http://www.YXZ.de ; Tochterseite: http://www.XYZ/ersteTochterSeite.de
2. Als Teilpfad - bsp.: Mainpage = http://www.XYZ.de ; Tochterseite = /ersteTochterSeite/

Nun zu meiner Frage, sind das die einzigen zwei Möglichkeiten oder gibt es unter C# noch mehr Möglichkeiten?

In Hoffnung, dass meine Fragestellung verständlich ist, verabschiede ich mich schonmal im voraus dankend! :)
Der C#-Quereinsteiger


Th69 - Do 05.01.17 12:00

Hallo und :welcome:

ich denke als Stichwort solltest du dich mal in die "Unified Resource Identifier (URI)" einlesen, z.B. unter Uniform Resource Locator [https://de.wikipedia.org/wiki/Uniform_Resource_Locator].
Welche Pfadangaben genau unterstützt werden hängen aber vom Dateisystem des Webservers ab. Bedenke z.B. auch die verschiedene Behandlung von Groß-/Kleinschreibung unter Unix-/Linux (z.B. ext2) sowie unter Windows (NTFS/FAT), z.B. "Datei", "datei" sowie "DATEI" werden unter Unix/Linux als unterschiedlich angesehen.

Als Klassen solltest du dir mal die Doku zu Uri und Path anschauen.


C#Quereinsteiger - Di 10.01.17 17:36

Hallo Th69,

vielen Dank für's Willkommen heißen! :)

Ok, vielen Dank für die Informationen. Ich mache mich gleich ran und berichte, wenn es denn soweit ist,
wie sich das Ganze entwickelt. :)

Beste Grüße.


C#Quereinsteiger - Do 12.01.17 15:55

Also, da bin ich wieder. :)

Habe dank Deiner Links nach dem richtigen Regex suchen können und auch eins im Netz gefunden,
dass funktioniert nun auch.
Nun bräuchte ich eine if-Methode, die prüft, ob der angegebene Pfad(in dem Fall Internet-Link) vollständig ist.
Gibt es da eine Möglichkeit?


Ralf Jansen - Do 12.01.17 15:59

Willst du relativ von absolut unterscheiden oder was ist deine Definiton von vollständig?


C#Quereinsteiger - Do 12.01.17 16:38

Meine Definition von vollständig wäre, die URL lässt sich so wie sie ist eingeben und man kommt von jedem Browser der Welt auf die richtige Addresse.

Habe eine Methode gefunden "IsWellFormedUriString()", es scheint zu funktionieren, bin mir aber nicht sicher, müsste das jetzt auf richtigkeit testen, irgendwie. :D
Was sagt ihr, liege ich richtig mit der Methode oder lieber was anderes?

Beste Grüße