Hallo,
und zwar habe ich Probleme damit ein Programm zu schreiben, dass von einer Webseite vor allem die Bilder runderladen soll.
Mein Ansatz war folgender:
Ich speicher den Quellcode in einem String und mittels der Contains Methode hätte ich dann nach der URL zum Bild gesucht.
Hier haben sich bei mir schon gleich 3 Probleme ergeben.
Mein Lösungsansatz:
Hier hab ich mir überlegt das ich mit einem SteamReader an die Sache rangeh. Also Quelltext irgendwie in eine Textdatei reinbekommen und dann Zeile für Zeile durchgehen, ob die gesuchte URL vorhanden ist, falls ja könnte man die Zeile so lange bearbeiten bis man nur die URL hat. Das ganze würde ja dann auch das zweite und dritte Problem vermutlich lösen.
Aber ich weiß ehrlich gesagt nicht wie ich den Quelltext in eine Textdatei kopieren kann, vor allem das er formatiert ist. Klar, kann ich das per Hand machen aber das Programm soll für etwa andere 70 Seiten auch funktionieren und 70 mal Quelltext per Hand einfügen ist auch nicht Sinn der Sache 😄
Würde mich sehr über ein bisschen Unterstützung freuen. Natürlich nicht mit Code sondern einfach theoretische Tipps, schließlich will ich daraus lernen 😄
Gibt es eventuell zu den ganzen Web Klassen Tutorials?
mfg
Grundsätzlich würde ich dir als Suchbegriff mal das HtmlAgilityPack oder zumindest den SgmlReader empfehlen, womit du die HTML-Seite über die XML-Api (zb. XDocument und Co) verarbeiten kannst anstatt dich mit Stringoperationen durchzuwühlen.
Allerdings solltest du dir auch überlegen, ob der Eigentümer der jeweiligen Webseite damit glücklich ist, wenn du massenhaft alle Bilder runterlädst.
Ob es für HTML etwas eigenes gibt weiß ich nicht, aber wennd u den ganzen Text einlesen willst würde ich mit Regex suchen. Da bietet .Net auch schon Klassen an. Du musst lediglich den Text, der durchsucht werden soll angeben und dein Regexmuster.
Regex-Tutorial
Danke schon mal ich werd mir mal beides anschauen.
Die Seite um die es sich handelt ist imgur.com und ich hab mit den Bildern nichts vor. Sind nur für eigenen Gebraucht, natürlich auch nur bei Bildern zu zum download zur Verfügung gestellt werden.
Ich finds nur manchmal sehr lästig wenn ein Album voller guter Bilder frei gestellt wird und ich jedes einzelne Bild seperat laden muss 😄 Und Traffic bzw. dem Webseitenbesitzer sollte das doch nicht stören oder?
Wollte eigentlich keine API oder ähnliches verwenden, da ich trotzdem noch ein Anfänger im programmieren bin und so viel wie möglich alleine machen will. Außerdem könnte ich eventuell das Programm auch auf anderen Seiten verwenden^^
Eine API ist dazu da, dass sie programmatisch angesprochen werden kann.
Wenn imgur Lust hat die Seite zu ändern, dann wirst Du evtl. alles neu machen müssen. Bei einer API eben nicht.
Klar, Du kannst auch den komplizierten Weg gehen; das ist Deine Sache.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Mit der einfachste Weg aus HTML Seiten gezielt etwas rauszufummeln ist sicherlich über CSS-Selektoren. XPATH kann manchmal etwas klobig sein.
Zudem ist nicht jedes HTML hunderprozentig ein wohlgeformtes XML, was die Verwendung von XML-Technologien manchmal schwierig macht.
Ein Tipp: CsQuery.
beste Grüße
zommi