AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke C# zur Laufzeit erzeugte Website in lokale Textdatei kopieren?
Thema durchsuchen
Ansicht
Themen-Optionen

zur Laufzeit erzeugte Website in lokale Textdatei kopieren?

Ein Thema von Jürgen Thomas · begonnen am 5. Sep 2006 · letzter Beitrag vom 5. Okt 2006
Antwort Antwort
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#1

zur Laufzeit erzeugte Website in lokale Textdatei kopieren?

  Alt 5. Sep 2006, 13:19
Hallo,

ich möchte Daten einer fremden Homepage, die zur Laufzeit aus einer DB geholt und angezeigt werden, in eine eigene DB übertragen. Bisher machen wir die folgenden Schritte manuell; die Umsetzung in ein Programm wäre hilfreich:

1. Aufruf der Seite RBB-Musiklisten (wer den Aufbau schnell prüfen möchte, kann den Anhang ansehen)
2. Im Abschnitt <h1>Musiklisten</h1> wird ein Datum ausgewählt unter:
XML-Code:
<td class="pf_eingabe"><label for="datum">vom</label>


<select name="datum"><option value="alle" selected>Alle</option>

<option value="02.09.">02.09.</option>
</select>
</td>
3. Über den Button "inputbutton2" werden diese Angaben zur Suche abgeschickt. Das Ergebnis ist eine neue Tabelle "musiklisten1".
4. In der Tabelle <table class="musiklisten1"> wird einer der Links aufgerufen, z.B.:
<td>[url="/programm/titel.jsp?key=playlist_970942&noExport=true"]KULTURRADIO AM MORGEN[/url]</td> 5. Die dadurch aufgerufene Seite wird im Quelltext unter einem (selbst festgelegten) Namen gespeichert.

Der Ablauf 2,3,4,5 ist an jedem Tag neu für jeweils vier Sendungen auszuführen. Die Nummer der Playlist kann ich nicht kennen; sie wird erst über die Suche gemäß 3 eingelesen.

Ich kenne mich mit lokalen DBs (Desktop und LAN) aus (außerdem auch mit ShellExecute u.ä.), habe aber keine Ahnung von Web-Programmierung. Es wäre aber sehr nützlich, wenn diese Schritte automatisiert durch ein eigenes Programm ablaufen könnten.

Kann mir jemand diese Schritte in Pseudo-Code und ggf. mit Hinweis auf geeignete Komponenten bzw. Klassen und Methoden (mit Hinweis auf die Umgebung, möglichst nur Standard-Klassen) umsetzen, damit ich diese Schritte in einem eigenen Programm (vorzugsweise NET 1.1 mit Delphi-C# oder 2.0 mit #D) umsetzen kann?

Recht herzlichen Dank! Jürgen
Angehängte Dateien
Dateityp: txt rbb_musiklisten_auswahl_141.txt (15,4 KB, 6x aufgerufen)
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#2

Re: zur Laufzeit erzeugte Website in lokale Textdatei kopier

  Alt 8. Sep 2006, 11:43
Halloooo!

Ich möchte es nochmal versuchen: Kann keiner mir helfen? Jürgen
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: zur Laufzeit erzeugte Website in lokale Textdatei kopier

  Alt 8. Sep 2006, 13:24
Hallo Jürgen,

.NET und alles was damit zusammenhängt spielt in meinem Leben bisher keine Rolle, aber ich erkenne in deinem Beitrag zwei Problemfelder: das Steuern der Webschnittstelle (von rbb) und das analysieren des HTML-Codes. Zur Steuerung findest du im Forum unter der Rubrik "Internet /LAN /ASP.NET" unzählige Beispiele, welche die Komponente TWebBrowser automatisieren (aber auch andere). Bei der Analyse machst du dir das Leben unnütz schwer, wenn du den HTML-Code als Text verarbeitest. Besser wäre aus meiner Sicht der Zugriff über HTML-DOM. Auch dazu findest du reichlich Code im Forum. Eine Pseudo-Code-Darstellung finde ich da nicht so hilfreich, wenn du doch normalen Delphi-Code lesen kannst. Inwieweit sich solcher Code von WIN32 nach .NET übertragen lässt kann ich leider nicht beurteilen.

Grüße vom marabu
  Mit Zitat antworten Zitat
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#4

Re: zur Laufzeit erzeugte Website in lokale Textdatei kopier

  Alt 8. Sep 2006, 14:56
Danke, marabu,

ich sagte ja schon, dass ich mich mit Web-Programmierung (also auch TWebBrowser) noch nie beschäftigt habe. Mein Thema ist die weitere Bearbeitung der Datei, insbesondere die Analyse der folgenden Tabelle:
XML-Code:
<table class="musiklisten2">

<tr><th scope="col">Tontr&auml;ger</th><th scope="col">Werk</th>
<th scope="col">Zeit</th></tr>

<tr>
<td nowrap><span class="strong">RBBeigene Aufnahme</span>
LC ohne
</td>
<td><span class="strong">Debussy, Claude </span>
Children's Corner Suite f&uuml;r Klavier:



Golliwog's cakewalk
Varsi, Dinorah (Klavier)


Aufnahme 16.09.1086
</td>
<td><span class="strong">2'51</span>
</td></tr> usw.
Vor allem die durch
getrennten Abschnitte sollen in eine DB übertragen werden und müssen dabei manipuliert werden (das ist meine eigentliche Aufgabe, und die ist mir klar).

Innerhalb dieser HTML-Dateien gibt es viele Meta-Daten, aber nur eine "musiklisten2". Deshalb hielt ich es für einfacher, nur den 'interessanten' Teil zu kopieren und außerdem die vier Dateien eines Tages in einer zusammenzufassen. Wenn Du mir sagst, dass die weitere Bearbeitung als ganzes einfacher ist, kann ich das so erledigen.

Zusammen mit Deinen Anmerkungen konkretisieren sich meine Fragen also so:
  • Kann ich aus einer WinForms-Anwendung (nicht WebForms) heraus die Internet-Seite ansteuern? Wenn ja, wie?
  • Wie kann ich Datum und danach einen Wert aus "musiklisten1" auswählen und die betreffende Seite speichern? (Den Umweg über TXT habe ich nur der Einfachheit halber vorgenommen; wenn es praktischer ist, kann ich sie auch direkt verarbeiten.)
  • Zur Weiterverarbeitung muss ich innerhalb einer jeden Tab-Zeile <tr> die Spalten <td> und jeden der durch
    getrennten Teile separat untersuchen. Hilft mir dabei die XmlDocument-Klasse, oder welche NET-Klasse ist für HTML-Dokumente innerhalb WinForms geeignet?
Danke für Ergänzungen! Jürgen
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#5

Re: zur Laufzeit erzeugte Website in lokale Textdatei kopier

  Alt 5. Okt 2006, 10:03
Weitere Hilfen blieben aus...

Nun ja, ich bin inzwischen selbst über Lösungen gestolpert.

Zitat:
Kann ich aus einer WinForms-Anwendung (nicht WebForms) heraus die Internet-Seite ansteuern? Wenn ja, wie?
So geht es:
Code:
const string URL="..."; // die Adresse der Internet-Seite
HttpWebRequest abfrage = (HttpWebRequest)WebRequest.Create(URL);
//  Parameter zuordnen
//  abfrage abschicken
HttpWebResponse antwort = (HttpWebResponse)frage.GetResponse();
StreamReader sr = new StreamReader(antwort.GetResponseStream());
Mit dem StreamReader habe ich die gewünschten Daten, mit denen ich weiter arbeiten kann.

Zitat:
Wie kann ich Datum und danach einen Wert aus "musiklisten1" auswählen und die betreffende Seite speichern?
Dies betrifft die o.g. Zuordnung von Parametern, die mir noch unklar ist - siehe [dp]NET 2.0: Anfrage an WebServer aus WinForms-Programm senden[/dp]

Zitat:
Zur Weiterverarbeitung muss ich ... (alle) Teile separat untersuchen. Hilft mir dabei die XmlDocument-Klasse, oder welche NET-Klasse ist für HTML-Dokumente ...
Ich habe mich doch entschlossen, die einzelnen Seiten als Textdatei zu verarbeiten. Ich muss sowieso viele Tags anders interpretieren als HTML; dadurch ist die Bearbeitung als TextStream einfacher (und es dauert auch bei 400 kB nur wenige Sekunden).

Vielleicht profitieren andere Nutzer von meinen Erfahrungen. Jürgen

@Mod
Diese Diskussion kann geschlossen werden.
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz