Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Inhalte einer Webseite downloaden
Wikked
myCSharp.de - Member



Dabei seit:
Beiträge: 4

Themenstarter:

Inhalte einer Webseite downloaden

beantworten | zitieren | melden

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 :D

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 :D
Gibt es eventuell zu den ganzen Web Klassen Tutorials?

mfg
private Nachricht | Beiträge des Benutzers
BhaaL
myCSharp.de - Member

Avatar #erP6yAFiewXrJTqrvg6R.jpg


Dabei seit:
Beiträge: 656

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
kunsti
myCSharp.de - Member



Dabei seit:
Beiträge: 92

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Wikked
myCSharp.de - Member



Dabei seit:
Beiträge: 4

Themenstarter:

beantworten | zitieren | melden

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 :D Und Traffic bzw. dem Webseitenbesitzer sollte das doch nicht stören oder?
private Nachricht | Beiträge des Benutzers
[email protected]
myCSharp.de - Member



Dabei seit:
Beiträge: 407

beantworten | zitieren | melden

Hi...

imgur.com hat auch eine API...

https://api.imgur.com/
private Nachricht | Beiträge des Benutzers
Wikked
myCSharp.de - Member



Dabei seit:
Beiträge: 4

Themenstarter:

beantworten | zitieren | melden

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^^
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15963

beantworten | zitieren | melden

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 - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
zommi
myCSharp.de - Member

Avatar #avatar-2617.png


Dabei seit:
Beiträge: 1380
Herkunft: Berlin

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers