WinFuture-Forum.de: Webseitenabfrage - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Webseitenabfrage


#1 Mitglied ist offline   Brian22 

  • Gruppe: Mitglieder
  • Beiträge: 5
  • Beigetreten: 26. Oktober 16
  • Reputation: 0

geschrieben 26. Oktober 2016 - 19:23

Hallo,

auf der Webseite http://www.forexfactory.com/trades.php befindet sich die Tabelle 'Trade Feed'.

Angehängtes Bild: Bild.JPG

Diese wird bei gesetztem Stream-Häkchen ständig aktualisiert.
Ich suche eine Möglichkeit auf die Daten in der Tabelle programmiertechnisch zuzugreifen.
Ist das möglich und wenn ja, wie bewerkstelligt man das?
0

Anzeige



#2 Mitglied ist offline   Holger_N 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.111
  • Beigetreten: 11. September 10
  • Reputation: 458
  • Geschlecht:Männlich

geschrieben 26. Oktober 2016 - 19:32

Man könnte die Seite als Text auslesen und anhand von festen Punkten, wenn zum Beispiel ein Wert immer im zwanzigsten <td></td> Tag auf der Seite ist, dort mit den ganzen String-Funktionen in PHP extrahieren.

So habe ich früher für ne Feuerwehrseite immer die Waldbrandwarnstufen ausgelesen. Schmeißt die Seite nicht die Daten auch als RSS-Feed raus? Dann kann man sich doch da einen Parser basteln. Funktioniert ähnlich und sogar etwas einfacher.

Dieser Beitrag wurde von Holger_N bearbeitet: 26. Oktober 2016 - 19:39

Bauernregel: Regnets mächtig im April, passiert irgendwas, was sich auf April reimt.
1

#3 Mitglied ist offline   Brian22 

  • Gruppe: Mitglieder
  • Beiträge: 5
  • Beigetreten: 26. Oktober 16
  • Reputation: 0

geschrieben 26. Oktober 2016 - 20:07

Hallo Holger,

danke für deine "Feuerwehrantwort" (die könnte kaum schneller sein).

Leider kenne mich in html-Programmierung so gar nicht aus. Ich kann C ganz gut.

Ich habe schon stundenlang im Webseiten-Quelltext rumgewühlt, alle möglichen Webadressen (die da angegeben sind) aufgerufen, aber ohne Erfolg. Mit RSS-Feed und Parser kenne ich mich nicht aus.

Auf der Unterseite http://www.forexfact...om/calendar.php gibt es eine Tabelle, die man unter http://www.forexfact...ar_thisweek.xml als Textdatei auslesen kann.
So etwas habe ich für diese Tabelle gesucht aber bisher erfolglos.
Existiert diese nicht (weil sie nicht explizit zur Verfügung gestellt wird), oder finde ich sie nur nicht?
0

#4 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 26. Oktober 2016 - 20:20

Da fragst Du am besten den Sitebetreiber, der weiß das besser als wir. :)

HTML einlesen ist immer so ne Sache, an Standards hält sich da nämlich kaum jemand und so muß man da immer mal um die Ecken schielen und hoffen, daß es morgen auch noch paßt.

Andererseits passen Tabellen... meistens... denn die sind ja von Haus aus strukturiert.

Um einen Parser wirst Du nicht drumrumkommen, entweder selbergebaut oder irgendwo organisiert. Wenn Du *GLÜCK* hast, also wirklich Glück hast, dann ist das HTML-Dokument xml-konform und Du kannst einen der vielen verfügbaren XML-Parser nehmen und das Ganze als DOM einlesen. Dann mußt Du nur noch über die Pfade zugreifen (XPath ist da recht einfach).

Wenn Du *kein* Glück hast, dann mußt Du Dich halt durch den blanken Quelltext wälzen und schauen, ob es kontextuelle Hints gibt, wo Du sagen kannst: hey, DAS hier wollt ich haben. (Tags mit Attribut id=... machen sich gut, die sind nämlich eindeutig). Geht das auch nicht, mußt Du halt abzählen: Ein table-tag gefunden, nö falsch. Zweites Table-Tag gefunden, imer noch falsch. Hier ist das dritte, das müßte es sein. Dann also jetzt die TRs anschauen und die TDs und das was da dazwischensteht einlesen (zB via fscanf() ).

Aufwendig. Sehr aufwendig und vor allem auch problematisch, weil ja der Betreiber das auch mal so eben "optimieren" kann und dann paßt Dein Parser auf alles, bloß nicht auf die bewußte HTML-Seite.


Daher ist der praktikabelste Weg via bereitgestellter XML- oder JSON-Information. Dazu, wenn Du's nicht selber im Quellcode entdecken kannst (gibt ja auch keine Garantie, daß das da zu finden *ist*) den Sitebetreiber anmailen und nachfragen.
"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
1

#5 Mitglied ist offline   Brian22 

  • Gruppe: Mitglieder
  • Beiträge: 5
  • Beigetreten: 26. Oktober 16
  • Reputation: 0

geschrieben 26. Oktober 2016 - 21:36

Hallo Ralph,

danke für deine Antwort.

Ich bin nun inzwischen soweit, als das ich den Quellcode als Textdatei aus meinem Programm heraus speichern kann. Darin befinden sich auch die gesuchten Daten, allerdings sind diese nicht aktuell. Immer wenn ich die Seite herunterlade, kommt der alte Stand vom ersten Download.
0

#6 Mitglied ist offline   Brian22 

  • Gruppe: Mitglieder
  • Beiträge: 5
  • Beigetreten: 26. Oktober 16
  • Reputation: 0

geschrieben 26. Oktober 2016 - 23:52

ok, habe herausgefunden warum die Seite nicht aktualisiert wird.
Beim herunterladen der Seite (auch ohne Verwendung eines Browsers!) wird die Datei
C:/Users/Benutzer/AppData/Local/Microsoft/Windows/Temporary Internet Files/Content.IE5/7KM2VHU1/trades[1].htm
erzeugt. Wenn ich diese vorher lösche dann fuktioniert es.
Problem dabei: Der Ordnername (in diesem Fall) 7KM2VHU1 (wird wahrscheinlich zufällig erzeugt) wechselt.
Wie kann ich die Datei dennoch finden und somit programmtechnisch löschen, hat da jemand eine Idee?
0

#7 Mitglied ist offline   Brian22 

  • Gruppe: Mitglieder
  • Beiträge: 5
  • Beigetreten: 26. Oktober 16
  • Reputation: 0

geschrieben 28. Oktober 2016 - 14:49

da ich in meinem Programm keine Zugriffberechtigung auf Ordner und Dateien habe (löschen ist nicht erlaubt), suche ich nach einer Möglichkeit meinen 'Temporary Internet Files' Ordner aller einer Sekunde zu löschen. Wie könnte man das realisieren?
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0