Webseiten Inhalt auslesen
Harry.F
- javascript
Hallo,
ich benötige für ein Projekt eine Javascript 'Funktion', mit der ich definierten Inhalt (also von... bis...) einer Webseite auslesen/parsen kann.
Ich möchte das mit Windows Boardmitteln (WSH) z.B. Aufruf mit: WScript.exe openurl.js) realisieren?
Beispiel für Funktionsaufrufe:
vt = OpenUrl(http://domain.de);
vt = stringTeil(vt, "Anfang", "Ende");
Im Web habe ich eine Lösung für VisualBasic gefunden (siehe OpenURL.bas)
Gibt es ein Pendant zu Javascript JS oder kann man sowas in JS übersetzen?
Gruss Harry F
Attribute VB_Name = "OpenUrl"
'API-Deklarationen:
Private Declare Sub InternetCloseHandle Lib "wininet.dll" ( _
ByVal hInet As Long)
Private Declare Function InternetOpenA Lib "wininet.dll" ( _
ByVal sAgent As String, ByVal lAccessType As Long, _
ByVal sProxyName As String, ByVal sProxyBypass As String, _
ByVal lFlags As Long) As Long
Private Declare Function InternetOpenUrlA Lib "wininet.dll" ( _
ByVal hOpen As Long, ByVal sUrl As String, _
ByVal sHeaders As String, ByVal lLength As Long, _
ByVal lFlags As Long, ByVal lContext As Long) As Long
Private Declare Sub InternetReadFile Lib "wininet.dll" ( _
ByVal hFile As Long, ByVal sBuffer As String, _
ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long)
'Enumeration für Internet:
Public Enum InternetOpenType
IOTPreconfig = 0
IOTDirect = 1
IOTProxy = 3
End Enum
Public Function OpenURL( _
ByVal URL As String, _
Optional ByVal OpenType As InternetOpenType = IOTPreconfig _
) As String
Const INET_RELOAD = &H80000000
Dim hInet As Long
Dim hURL As Long
Dim Buffer As String * 2048
Dim Bytes As Long
'Inet-Connection öffnen:
hInet = InternetOpenA( _
"VB-Tec:INET", OpenType, _
vbNullString, vbNullString, 0)
hURL = InternetOpenUrlA( _
hInet, URL, vbNullString, 0, INET_RELOAD, 0)
'Daten sammeln:
x = 0
Do
InternetReadFile hURL, Buffer, Len(Buffer), Bytes
If Bytes = 0 Then Exit Do
OpenURL = OpenURL & Left$(Buffer, Bytes)
Loop
'Inet-Connection schließen:
InternetCloseHandle hURL
InternetCloseHandle hInet
End Function
Function stringTeil(Text As String, anfangStr As String, endStr As String)
Dim anfang As Long, ende As Long, anfangEnde As Long
If anfangStr = "" Then
anfang = 1
Else
anfang = InStr(1, Text, anfangStr, vbTextCompare)
End If
anfangEnde = anfang + Len(anfangStr)
If endStr = "" Then
ende = Len(Text) + 1
Else
ende = InStr(1, Text, endStr, vbTextCompare)
End If
If anfang > 0 And ende > 0 Then
stringTeil = Mid(Text, anfangEnde, ende - anfangEnde)
Else
stringTeil = NA
End If
End Function
'==================
Hallo,
ich benötige für ein Projekt eine Javascript 'Funktion', mit der ich definierten Inhalt (also von... bis...) einer Webseite auslesen/parsen kann.
Mit AJAX kannst du eine Webseite ***derselben Domain*** aufrufen und auswerten. Aber eben nicht eine beliebige Webseite.
Der Aufruf einer fremden Domain ergibt einen Fehler. Und das ist so gewollt wg. Sicherheit.
Kalle
Hallo,
Mit AJAX kannst du eine Webseite ***derselben Domain*** aufrufen und auswerten. Aber eben nicht eine beliebige Webseite.
Der Aufruf einer fremden Domain ergibt einen Fehler. Und das ist so gewollt wg. Sicherheit.
...nun, es gibt sicherlich eine ganze Menge Sprachen mit denen es nicht geht, aber wirklich hilfreich sind solche Antworten für mich natürlich nicht.
Harry
Hi,
...nun, es gibt sicherlich eine ganze Menge Sprachen mit denen es nicht geht, aber wirklich hilfreich sind solche Antworten für mich natürlich nicht.
Diese Antwort besagt exakt, dass Javascript keine Lösung für Dich bietet. Und Ajax ist keine Sprache.
Gruesse, Joachim
Hallo,
Diese Antwort besagt exakt, dass Javascript keine Lösung für Dich bietet. Und Ajax ist keine Sprache ...
... sondern eine Kommunikationstechnik, die mit Javascript auf der einen Seite realisiert wird. (Das nur der Vollständigkeit halber)
Ciao,
Martin
Hallo,
Diese Antwort besagt exakt, dass Javascript keine Lösung für Dich bietet. Und Ajax ist keine Sprache ...
... sondern eine Kommunikationstechnik, die mit Javascript auf der einen Seite realisiert wird. (Das nur der Vollständigkeit halber)
Genau! Harry könnte ja den Content serverseitig fix und fertig zusammenbauen und alles wird gut ;-)
Hotti
Hallo,
ich hatte eigentlich auf konstruktive Vorschläge zur Lösung gehofft - vor allem aber nicht auf Antworten von Erbsenzählern und Senfdazugebern. Diese Art des "Chattens" kenne ich zu Genüge aus anderen Foren.
Mit gebührendem Respekt bitte ich von dieser arrogannten Art und Weise der Beiträge Abstand zu nehmen. Sie helfen in keinster Weise sich einer Herausforderung zu stellen und diese zu lösen.
Gruss
Harry F
Seid gegrüßt!
ich sehe hier schon eine Hilfe: Nämlich die, dass es mittels Javascript nicht funktionieren wird. Andere Sprachen können dir bei deinem Vorhaben sicher helfen, nicht aber Javascript (zumindest so weit ich meine Vorschreiber verstanden habe.) Ich habe selbst einmal so etwas realisiert, allerdings in PHP und nicht in Javascript.
Javascript unterliegt der same origin policy.
Des weiteren möchte ich hinzufügen, dass ich keinerlei Arroganz o.ä. in den Vorpostings erkennen kann. Es wurde lediglich darauf hingewiesen, dass dein Vorhaben -wie du es möchtest / ich bzw. meine Vorschreiber es verstanden haben- nicht möglich ist.
Ist ein Posting in diesem Forum nicht schon von Natur aus ein "Senfdazugeben" ?
Sie helfen in keinster Weise sich einer Herausforderung zu stellen und diese zu lösen.
Dem möchte ich widersprechen: Du weist bereits jetzt, dass es so nicht möglich ist.
Hallo Rud,
vielen Dank erstmal für den ersten klar verständlichen Beitrag.
ich sehe hier schon eine Hilfe: Nämlich die, dass es mittels Javascript nicht funktionieren wird. Andere Sprachen können dir bei deinem Vorhaben sicher helfen, nicht aber Javascript (zumindest so weit ich meine Vorschreiber verstanden habe.) Ich habe selbst einmal so etwas realisiert, allerdings in PHP und nicht in Javascript.
»»
Das nenne ich eine klare (unverschlüsselte) Antwort.
Javascript unterliegt der same origin policy.
»»
Vielen Dank auch dafür.
Es wurde lediglich darauf hingewiesen, dass dein Vorhaben -wie du es möchtest / ich bzw. meine Vorschreiber es verstanden haben- nicht möglich ist.
»»
Das kann man doch auch genauso unmissverständlich ausdrücken.
Ist ein Posting in diesem Forum nicht schon von Natur aus ein "Senfdazugeben" ?
...ohne Kommentar.
Dem möchte ich widersprechen: Du weist bereits jetzt, dass es so nicht möglich ist.
»»
Na ja, man kann das Pferd auch von hinten aufzäumen und erst mal alles aufzählen was nicht geht - in meinen Augen nicht sooo effektiv.
...werde mich jetzt mit wget und curl auseinandersetzen um über einen Umweg ans Ziel zu kommen. Das Forum hier bringt mich dem Ziel nicht weiter. Vor einiger Zeit wurde mir hier weis gemacht, dass mit JS ein read/write von ini-Dateien nicht möglich ist - tja, weit gefehlt, Lösung wurde erarbeitet.
Gruss Harry F
Thema geschlossen
Hallo,
ich sehe hier schon eine Hilfe: Nämlich die, dass es mittels Javascript nicht funktionieren wird. Andere Sprachen [...]
Das nenne ich eine klare (unverschlüsselte) Antwort.
aber genau diese Antwort hattest du im ersten Follow-Up von Kalle schon bekommen.
Javascript unterliegt der same origin policy.
Vielen Dank auch dafür.
Oh. Das hätte ich als bekannt vorausgesetzt.
Es wurde lediglich darauf hingewiesen, dass dein Vorhaben -wie du es möchtest / ich bzw. meine Vorschreiber es verstanden haben- nicht möglich ist.
Das kann man doch auch genauso unmissverständlich ausdrücken.
Was war an Kalles Antwort unverständlich oder missverständlich? Er schrieb sogar noch, dass es möglich ist, solange die Daten von derselben Domain stammen [wie das Dokument selbst].
Na ja, man kann das Pferd auch von hinten aufzäumen und erst mal alles aufzählen was nicht geht - in meinen Augen nicht sooo effektiv.
Du fragtest nach einer Lösung in Javascript - und hast die Antwort bekommen: Das geht nicht.
...werde mich jetzt mit wget und curl auseinandersetzen um über einen Umweg ans Ziel zu kommen. Das Forum hier bringt mich dem Ziel nicht weiter.
Nein, wenn du nicht willst, dann natürlich nicht.
Vor einiger Zeit wurde mir hier weis gemacht, dass mit JS ein read/write von ini-Dateien nicht möglich ist
Das behaupte ich auch immer noch.
tja, weit gefehlt, Lösung wurde erarbeitet.
Mag sein - aber nicht mit Javascript. Vielleicht mit Microsofts JScript oder anderen proprietären Erweiterungen, oder unter Zuhilfenahme einer weiteren Technik wie Flash oder Java.
Ciao,
Martin