Laden...

Inhalte einer Webseite downloaden

Erstellt von Wikked vor 8 Jahren Letzter Beitrag vor 8 Jahren 1.835 Views
W
Wikked Themenstarter:in
4 Beiträge seit 2015
vor 8 Jahren
Inhalte einer Webseite downloaden

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.

  1. Mit der Contains Methode würde ich nur einen String bekommen. Auf einer Seite sind jedoch etwa um die 50-60 Bilder.
  2. Das andere Problem ist, das die URL zwar den selben Anfang hat, aber natürlich zum Ende hin immer unterschiedlich wird.
  3. Zudem bekomm ich ja mit der Contains Methode nicht den String zurückgeliefert.

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

656 Beiträge seit 2008
vor 8 Jahren

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.

K
89 Beiträge seit 2013
vor 8 Jahren

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

W
Wikked Themenstarter:in
4 Beiträge seit 2015
vor 8 Jahren

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?

M
402 Beiträge seit 2005
vor 8 Jahren

Hi...

imgur.com hat auch eine API...

https://api.imgur.com/

W
Wikked Themenstarter:in
4 Beiträge seit 2015
vor 8 Jahren

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^^

16.806 Beiträge seit 2008
vor 8 Jahren

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.

1.361 Beiträge seit 2007
vor 8 Jahren

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