Post by Helmut2 » 12 Sep 2023, 12:41
Hallo zusammen,
nach dem ich in diesem Beitrag
viewtopic.php?f=82&t=121174
gesehen habe, wie Daten aus einer Webseite geholt werden können, wollte ich es auch einmal ausprobieren.
Seiten die ohne Anführungsstriche die Daten einstellen, habe ich auch herausbekommen.
Einige Seiten haben aber relativ viele Anführungszeichen und die führen dann nicht zum Erfolg.
Bei der Seite
https://www.finanzen.net/index/dax bekomme ich immer die Fehlermeldung: Specifically: HttpRequest error, status: 403
obwohl der Quelltext leicht aufzurufen geht. Gibt es dafür eine Erklärung?
Hauptsächlich geht es mir aber um diesen Fehler:
Die Seite
https://www.boerse.de/indizes/Dax/DE0008469008 liefert leider bei meiner Suche den Fehler
Error: Missing space or operator before this.
Specifically: last" data-format-option="0">1")
Hier mein Probierscript:
SpoilerCode: Select all
#Requires AutoHotkey >=2.0
#Warn
#SingleInstance
;HttpRequest := GetHtml("https://www.finanzen.net/index/dax") ;Specifically: HttpRequest error, status: 403
HttpRequest := GetHtml("https://www.boerse.de/indizes/Dax/DE0008469008")
Pos := InStr(HttpRequest, "data-push-attribute="last" data-format-option="0">1") ;Specifically: last" data-format-option="0">1")
;Pos := InStr(HttpRequest, "data-push-attribute=*last**data-format-option=*0*>") ;bringt auch nicht den gewünschten Erfolg
Dax := SubStr(HttpRequest, Pos+50 , 7)
MsgBox "Dax= " Dax
GetHtml(url) {
Whr := ComObject("WinHttp.WinHttpRequest.5.1")
Whr.Open("GET", url, true)
Whr.Send()
Whr.WaitForResponse()
status := Whr.status
if (status != 200)
throw "HttpRequest error, status: " . status
Arr := Whr.responseBody
pData := NumGet(ComObjValue(arr) + 8 + A_PtrSize, "Ptr")
length := arr.MaxIndex() + 1
Return html := StrGet(pData, length, "UTF-8")
}
Ein anderes Script ohne Anführungsstriche funktioniert gut
https://www.boerse-stuttgart.de/de-de/produkte/indizes/846900-dax
Code: Select all
#Requires AutoHotkey >=2.0
#Warn
#SingleInstance
HttpRequest := GetHtml("https://www.boerse-stuttgart.de/de-de/produkte/indizes/846900-dax")
Pos := InStr(HttpRequest, "data-animation=") ;schaut im Quelltext von Url nach data-animation=
Dax := SubStr(HttpRequest, Pos+31 , 10) ;Anfang gesuchter Begriff +31 Zeichen folgenden 10 Zeichen werden angezeigt
Gestern := SubStr(HttpRequest, Pos+406 , 20) ;Anfang gesuchter Begriff + 406 Zeichen folgenden 20 Zeichen werden angezeigt
MsgBox "Dax " Dax "`n" "Gestern= " Gestern ;"`n" nächste Zeile:
GetHtml(url) {
Whr := ComObject("WinHttp.WinHttpRequest.5.1")
Whr.Open("GET", url, true)
Whr.Send()
Whr.WaitForResponse()
status := Whr.status
if (status != 200)
throw "HttpRequest error, status: " . status
Arr := Whr.responseBody
pData := NumGet(ComObjValue(arr) + 8 + A_PtrSize, "Ptr")
length := arr.MaxIndex() + 1
Return html := StrGet(pData, length, "UTF-8")
}
Würde mich über jede Hilfe und Erklärung freuen.
Vielen Dank im Voraus.
Gruß
Helmut
Hallo zusammen,
nach dem ich in diesem Beitrag https://www.autohotkey.com/boards/viewtopic.php?f=82&t=121174
gesehen habe, wie Daten aus einer Webseite geholt werden können, wollte ich es auch einmal ausprobieren.
Seiten die ohne Anführungsstriche die Daten einstellen, habe ich auch herausbekommen.
Einige Seiten haben aber relativ viele Anführungszeichen und die führen dann nicht zum Erfolg.
Bei der Seite https://www.finanzen.net/index/dax bekomme ich immer die Fehlermeldung: Specifically: HttpRequest error, status: 403
obwohl der Quelltext leicht aufzurufen geht. Gibt es dafür eine Erklärung?
Hauptsächlich geht es mir aber um diesen Fehler:
Die Seite https://www.boerse.de/indizes/Dax/DE0008469008 liefert leider bei meiner Suche den Fehler
Error: Missing space or operator before this.
Specifically: last" data-format-option="0">1")
Hier mein Probierscript:
[spoiler][code]
#Requires AutoHotkey >=2.0
#Warn
#SingleInstance
;HttpRequest := GetHtml("https://www.finanzen.net/index/dax") ;Specifically: HttpRequest error, status: 403
HttpRequest := GetHtml("https://www.boerse.de/indizes/Dax/DE0008469008")
Pos := InStr(HttpRequest, "data-push-attribute="last" data-format-option="0">1") ;Specifically: last" data-format-option="0">1")
;Pos := InStr(HttpRequest, "data-push-attribute=*last**data-format-option=*0*>") ;bringt auch nicht den gewünschten Erfolg
Dax := SubStr(HttpRequest, Pos+50 , 7)
MsgBox "Dax= " Dax
GetHtml(url) {
Whr := ComObject("WinHttp.WinHttpRequest.5.1")
Whr.Open("GET", url, true)
Whr.Send()
Whr.WaitForResponse()
status := Whr.status
if (status != 200)
throw "HttpRequest error, status: " . status
Arr := Whr.responseBody
pData := NumGet(ComObjValue(arr) + 8 + A_PtrSize, "Ptr")
length := arr.MaxIndex() + 1
Return html := StrGet(pData, length, "UTF-8")
}
[/code]
[/spoiler]
Ein anderes Script ohne Anführungsstriche funktioniert gut
https://www.boerse-stuttgart.de/de-de/produkte/indizes/846900-dax
[spoiler2=][code]
#Requires AutoHotkey >=2.0
#Warn
#SingleInstance
HttpRequest := GetHtml("https://www.boerse-stuttgart.de/de-de/produkte/indizes/846900-dax")
Pos := InStr(HttpRequest, "data-animation=") ;schaut im Quelltext von Url nach data-animation=
Dax := SubStr(HttpRequest, Pos+31 , 10) ;Anfang gesuchter Begriff +31 Zeichen folgenden 10 Zeichen werden angezeigt
Gestern := SubStr(HttpRequest, Pos+406 , 20) ;Anfang gesuchter Begriff + 406 Zeichen folgenden 20 Zeichen werden angezeigt
MsgBox "Dax " Dax "`n" "Gestern= " Gestern ;"`n" nächste Zeile:
GetHtml(url) {
Whr := ComObject("WinHttp.WinHttpRequest.5.1")
Whr.Open("GET", url, true)
Whr.Send()
Whr.WaitForResponse()
status := Whr.status
if (status != 200)
throw "HttpRequest error, status: " . status
Arr := Whr.responseBody
pData := NumGet(ComObjValue(arr) + 8 + A_PtrSize, "Ptr")
length := arr.MaxIndex() + 1
Return html := StrGet(pData, length, "UTF-8")
}
[/code]
[/spoiler2]
Würde mich über jede Hilfe und Erklärung freuen.
Vielen Dank im Voraus.
Gruß
Helmut