Hallo zusammen,
ich versuche seit Tagen ein Excel Makro zu schreiben, dass mir von einer Webseite eine bestimmte Zahl ausliest und in eine bestimmte Zelle schreibt.
Konkret geht es darum für verschiedene Strecken, für die ich Start- und Zielkoordinate habe, die länge des Weges (nicht Luftlinie) zu erhalten. Das möchte ich mit der Webseite brouter.de/brouter-web machen. Start- und Endpunkt finden sich als Koordinaten in der URL. Z.B. so: http://brouter.de/brouter-web/#map=14/47.8016/8.0676/osm-mapnik-german_style&lonlats=8.036504,47.81276;8.068257,47.797069&profile=hiking-beta
Wenn man diese URL öffnet, steht unten links auf der Seite die Kilometer Zahl.
Versucht habe ich es mit einem Beispiel aus dem Netz, bei dem mittels der Funktion html.getElementsByName ein Währungskurs abgerufen wird. Da ist es allerdings eine Klasse, auf die zugegeriffen wird, bei meiner Webseite ist es eine span title Element. Ich kenne mich leider mit html nicht aus und weiß nicht wirklich wie die Klassen und Elemente zusammenhängen. Vielleicht kann mir ja jemend helfen.
Hier mein Code (in der Zeile mit "price = html.getelement..." liegt der Fehler):
Sub Get_Web_Data()
' TeachExcel.com
Dim request As Object
Dim response As String
Dim html As New HTMLDocument
Dim website As String
Dim price As Variant
' Website to go to.
website = "http://brouter.de/brouter-web/#map=14/47.8016/8.0676/osm-mapnik-german_style&lonlats=8.036504,47.81276;8.068257,47.797069"
' Create the object that will make the webpage request.
Set request = CreateObject("MSXML2.XMLHTTP")
' Where to go and how to go there - probably don't need to change this.
request.Open "GET", website, False
' Get fresh data.
request.setRequestHeader "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"
' Send the request for the webpage.
request.send
' Get the webpage response data into a variable.
response = StrConv(request.responseBody, vbUnicode)
' Put the webpage into an html object to make data references easier.
html.body.innerHTML = response
' Get the price from the specified element on the page.
price = html.getElementByName("distance")
' Output the price into a message box.
MsgBox price
End Sub
Beste Grüße
Peter
|