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
C# Webseite auslesen und in Variablen speichern
sippzhn
myCSharp.de - Member



Dabei seit:
Beiträge: 2

Themenstarter:

C# Webseite auslesen und in Variablen speichern

beantworten | zitieren | melden

Hallo,
ich versuch gerade eine Webseite auszulesen, das ist mir auch gelungen, allerdings möchte ich jetzt bestimmte Werte in versch. Variablen speichern.

Die Ausgabe der Seite sieht z.B. so aus:
<tr class="even">
	<th>Time:</th>
	<td>28h 37m 				</td>
</tr>

Wie kann ich jetzt den Wert "28h 37m" speichern?

Hab dazu leider nichts gefunden.
private Nachricht | Beiträge des Benutzers
itstata
myCSharp.de - Member



Dabei seit:
Beiträge: 302
Herkunft: Rostock

beantworten | zitieren | melden

Über Xml oder was meinst du?
XDocument

Wie hast du die Webseite denn eingelesen?
private Nachricht | Beiträge des Benutzers
sippzhn
myCSharp.de - Member



Dabei seit:
Beiträge: 2

Themenstarter:

beantworten | zitieren | melden

Die Webseite hab ich so eingelesen:
(Als Beispiel hab ich Google gewählt)


private void btnAnzeigen_Click(object sender, EventArgs e)
{
     string url = "http://google.de";
     WebClient c = new WebClient();
     byte[] response = c.DownloadData(url);
     string test = Encoding.ASCII.GetString(response);
     tbAnzeige.AppendText(test);
     tbAnzeige.ScrollBars = ScrollBars.Vertical;
}

Danach wird mir der Quelltext in der Textbox angezeigt. Und bestimmte Teile davon will ich in Variablen speichern.
private Nachricht | Beiträge des Benutzers
itstata
myCSharp.de - Member



Dabei seit:
Beiträge: 302
Herkunft: Rostock

beantworten | zitieren | melden

Du musst dich entweder mit Regulären Ausdrücken an die HTML-Tags heften oder du verwendest eine LINQ - HTML Erweiterung um direkt die Tags auszulesen.
private Nachricht | Beiträge des Benutzers
blutiger_anfänger
myCSharp.de - Member



Dabei seit:
Beiträge: 293
Herkunft: Meerbusch, NRW

beantworten | zitieren | melden

Zum Thema Regex findest du hier ein wunderschönes Tutorial... ;)
Wenn ich nicht hier bin, findest du mich auf code-bude.net.
private Nachricht | Beiträge des Benutzers
M.L.
myCSharp.de - Member



Dabei seit:
Beiträge: 317

beantworten | zitieren | melden

Regex und HTML ist so eine Sache: Artikel bei Stackoverflow (bei einem überschaubaren Beispiel mag das ok sein, aber wer weiss...). Weiters könnte man einen HTML Parser verwenden: Codeproject, HTML Parser
Goalkicker.com // DNC Magazine for .NET Developers // .NET Blogs zum Folgen
Software is like cathedrals: first we build them, then we pray ;-)
private Nachricht | Beiträge des Benutzers
jaensen
myCSharp.de - Experte

Avatar #avatar-2657.png


Dabei seit:
Beiträge: 2.760
Herkunft: München

beantworten | zitieren | melden

WebClient mit HTTP-POST- und Cookie-Unterstützung
private Nachricht | Beiträge des Benutzers
Carjac
myCSharp.de - Member



Dabei seit:
Beiträge: 3

RegEX Teile aus Html Code schneiden

beantworten | zitieren | melden

Guten Morgen allerseits
Ich arbeite gerade an einem Projekt das mir Informationen zu einem Produkt liefert.
Jedoch habe ich ein kleines Problem. Ich möchte aus einer Webseite einen Teil des Quellcodes ausschneiden.
Um den Quellcode in einem String zu speichern verwende ich die Webclient funktion.

 WebClient wClient = new WebClient();
            string strSource = wClient.DownloadString("http://www.xmatik.ch");
            string pat = @"<b>Aktuelle Informationen</b>(.*)<!-- End ""content"" -->";
            Regex bodyfilter = new Regex(pat,RegexOptions.IgnoreCase);
            Match m = bodyfilter.Match(strSource);
            textBox1.Text = m.ToString();
            label1.Text = strSource;

Ich versuche mit diesem Code alles was zwischen dem Tag <b>Aktuelle Informationen</b> und <!-- End "content" --> liegt in einer Textbox auszugeben.
Jedoch liefert es kein Ergebnis.
Wenn ich aber Manuell in den String strSource:

<b>Aktuelle Informationen</b>asdfalö290340     <!-- End \"content\" -->"
schreibe, wird mir ein Ergebnis zurückgeliefert.

Wieso kriege ich kein Ergebnis zurück wenn ich den Quelltext der Website benutze?

Vielen Dank für eure Hilfe

Lg Carsten
private Nachricht | Beiträge des Benutzers
zero_x
myCSharp.de - Member

Avatar #avatar-2567.gif


Dabei seit:
Beiträge: 1.044
Herkunft: Koblenz

beantworten | zitieren | melden

Hallo Carjac,

die, die vor mir gepostet haben, haben einige Links gepostet. Hast du dir mal die Links abgeschaut? Dir sollten dir auf jeden Fall weiterhelfen.

zero_x
zero_x | myCSharp.de - gemeinsam mehr erreichen

Für längere Zeit inaktiv.
private Nachricht | Beiträge des Benutzers
Carjac
myCSharp.de - Member



Dabei seit:
Beiträge: 3

beantworten | zitieren | melden

Hallo zero_x
ich habe die links oben angeschaut und damit auch diesen Code geschrieben, komme aber bei diesem Problem nicht weiter. Ich verstehe nicht wieso er keine Übereinstimmung mit dem Quellcode findet.
Könnte es vielleicht an einigen Sonderzeichen liegen?

lg Carsten
private Nachricht | Beiträge des Benutzers
Carjac
myCSharp.de - Member



Dabei seit:
Beiträge: 3

beantworten | zitieren | melden

so :D habe das Problem herausgefunden!

Es liegt an den Zeilenschaltungen und den Tabulatoren im Quellcode usw.

Habe es mit diesem RegEx Code gelöst:

string pat = @"<b>Aktuelle Informationen</b>([\n\t\r]|.)*<!-- End ""content"" -->";

lg Carsten
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Carjac am .
private Nachricht | Beiträge des Benutzers