Website parsen, Ergebnisse in Datei schreiben

Ich hab folgendes "Projekt":

Ich möchte auf der Website eines Radiosenders die Liste der 10 als letze gespielten Songs parsen, und die Ergebnisse (Songname + Interpret) in eine Datei schreiben lassen (normale txt oder irgendeine tabelle). Dieser Vorgang soll ca. alle 35 min wiederholt werden. Alle Ergebnisse sollen in die gleiche Liste kommen, d.h. einfach unten angefügt werden! Das Programm/Script sollte wenn möglich lokal (und eventuell) automatisch ausführbar sein!

Wer kann mir sagen welche Programmiersprache am geeignetesten ist und wie ich das Problem angehen soll?

Freue mich über jede Antwort!

MfG Patrick :]
 
Also funktionieren tuts schon. Aber der Aufwand ist viel zu gross, als dass es sich mit VisualBasic lohnen würde, das überhaut anfangen zu programmieren. Und ich glaube nicht, dass ihr im ersten Jahr so weit kommt, da ihr ja nicht jeden Tag Informatik-Unterricht habt. Mit PHP geht das viel einfacher.
 
Für Dein Problem scheint mir Perl sehr gut geeignet zu sein.
Auf www.cpan.org findest Du ein Modul, das genau für diesen Zweck entwickelt wurde:
Es heisst (nomen est omen) HTML::Parser
HTML::Parser ist ein sehr mächtiges, aber auch ein relativ komplexes Modul.
Alternativen wären z. B HTML::TokeParser oder HTML::PullParser

Zum Abrufen der Seite, kannst Du curl verwenden oder , wenn Du alles in Perl machen möchtes mit dem Modul LWP arbeiten.

HTH
 
Den Code würde ich auch gern sehen, intressiere mich sehr für sowas hab aber kA wie man so was realisieren könnte.
 
Jupp bin fast Fertig
Mach ne Version in VB6. Ist glaube ich einfacher zu verstehen

Edit:
Ach ja Inet1 ist ein MS Internet Transfer Objekt
Hier ist er:
Code:
Private Sub Form_Load()

Dim Quelltext As String
Dim Start As Long
Dim Ende  As Long
Dim StartSTR As String
Dim EndSTR As String
Dim result As String
Dim Rows() As String
Dim i  As Long
Dim Artist As String
Dim Temp As String
Dim TempArray() As String
Dim Title As String
Dim Time As String

'Quelltext wird geladen
Quelltext = Inet1.OpenURL("http://www.eldoradio.lu/music/lastten/")


' Manchmal sind störende Span's im relevanten Quelltext
Quelltext = Replace(Quelltext, "<SPAN>", "")
Quelltext = Replace(Quelltext, "</SPAN>", "")

'Der relevante Quelltext steht zwischen diesen Tags:
StartSTR = "<B>Last 10 songs</B><BR><BR>"
EndSTR = "</TD>"



' Der relevante Quelltext wird  ausgeschnitten.
'Man erhält 10 Zeilen mit jeweils einem <br> am ende
Start = InStr(1, Quelltext, StartSTR) + Len(StartSTR)
Ende = InStr(Start, Quelltext, EndSTR)
Ende = Ende - Start
result = Mid(Quelltext, Start, Ende)


'Dannwird jede Zeile in ein Array gepackt,
Rows = Split(result, "<br>")

Dim Nummer As Long
Dim Name As String
Nummer = FreeFile
Name = "LastTen.txt"
Open Name For Output As Nummer
'jede Reihe einzeln abgearbeitet,
For i = 0 To UBound(Rows) - 1
 'die Elemente Ausgeschnitten
 Start = InStr(Rows(i), "-") + 1
 Temp = Mid(Rows(i), Start)
 TempArray = Split(Temp, " - ")
 Title = Mid(TempArray(0), 2)
 Time = Mid(Rows(i), 2, Start - 3)
 Artist = TempArray(1)
' und schließlich in die Datei geschrieben
 Print #Nummer, Artist & "|" & Title & "|" & Time
Next
Close Nummer
'Dann wird die Datei mit Notepad angezeigt
Shell "notepad.exe " & App.Path & "\" & Name, vbNormalFocus
End

End Sub

Kann auch gerne ne kompelierte Exe anhängen
 
Ist doch ganz einfach mit VB

Suche einfach nach "<TD VALIGN=TOP ALIGN=left CLASS="highlight_main">"
und lesen die nächsten paar Zeilen ein bis zum nächsten "</TD>"
Dann hast n Array mit den ganzen Lieder da machst noch die <BR> und <b> raus und das wars.

Ungefähr so wie THARALL es gemacht hat ;)
 
fleissig fleissig, recht herzlichen dank! VB 6 ist perfekt wir lernen kein .NET =) das script ist cool, echt einfach zu verstehen! Hättest du auch noch eine idee wie man das programm automatisch sagen wir jede halbe stunde ausführen kann?

thx Patrick :D
 
daran hat ich auch schon gedacht =) andere Sache: ich hab den code versucht zu compilieren doch ich bekomm flogende fehlermeldung:

Run-time error '424' : Object required

Muss ich vielleicht noch irgendwas installieren oder was zum Form hinzufügen?

Denn wenn ich auf 'Help' drücke sagt er:

The MSDN collection does not exist. Please reinstall MSDN.

Sorry bin (noch) en ziemlicher N00B ?( :D
 
Original von Cyberm@ster
daran hat ich auch schon gedacht =) andere Sache: ich hab den code versucht zu compilieren doch ich bekomm flogende fehlermeldung:

Run-time error '424' : Object required

Muss ich vielleicht noch irgendwas installieren oder was zum Form hinzufügen?

Denn wenn ich auf 'Help' drücke sagt er:

The MSDN collection does not exist. Please reinstall MSDN.

Sorry bin (noch) en ziemlicher N00B ?( :D
Due musst die Komponente "Microsoft Internet Transfer Control" hinzufügen und aufs Form packen.
Wenn du nicht weißt wie: Projekt > Komponenten...
Solltest du die Komponente nicht haben google mal nach "msinet.ocx".

Der Code ist übrings noch ziemlich aufwendig.
Das geht auch mit 20 Zeilen^^
 
Theoretisch hätte man nur den Codeblock ausschneiden müssen dann <br>'s entfernen und in die Datei packen. SO isses aber schöner
 
So hier hab ich mal meine Version, ist ziemlich abgekuckt von THRALL
Hab aber das Webbrowser-Control verwendet

Code:
Option Explicit

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp _
  As Object, URL As Variant)
  On Error Resume Next
  WebBrowser1.Tag = ""
End Sub

Private Sub Form_Load()

Dim Quelltext As String
Dim Zeilen() As String

With WebBrowser1
    .Tag = "Load"
    .Navigate "http://www.eldoradio.lu/music/lastten/"

    ' Warten bis Seite vollständig geladen ist
    While .Tag <> ""
      DoEvents
    Wend
End With

Quelltext = WebBrowser1.Document.documentElement.outerHTML

Dim Start As Long
Dim Ende As Long

Start = InStr(1, Quelltext, "highlight_main vAlign=top align=left>") + Len("highlight_main vAlign=top align=left>")
Ende = InStr(Start, Quelltext, "</TD>", vbBinaryCompare)
Quelltext = Mid(Quelltext, Start, Ende - Start)

Zeilen = Split(Quelltext, "<BR>")

Dim ff As Integer
ff = FreeFile

Dim i As Integer
Open "Last_Ten.txt" For Output As ff
    For i = 0 To UBound(Zeilen) - 1
       Print #ff, Zeilen(i)
    Next i
Close ff

Shell "notepad.exe " & App.Path & "\" & "Last_Ten.txt", vbNormalFocus

End

End Sub
 
Danke Jungs, will euch ja nicht auf den Wecker gehen, aber es funktioniert immer noch nicht! Hab "Microsoft Internet Transfer Control 6 (SP4)" aktiviert, ging nicht, hab ich die Datei (msinet.ocx) mit einer aus dem web ersetzt, ging nicht, neustart, immer noch nicht?!
?( Groooosses Fragezeichen
 
Zurück
Oben