Thema Datum  Von Nutzer Rating
Antwort
Rot Daten mit VBA mit dem Befehl getelements... scrapen
27.01.2021 11:43:30 Peter Born
NotSolved
27.01.2021 14:48:08 Gast45074
NotSolved
27.01.2021 14:53:33 Gast45074
NotSolved

Ansicht des Beitrags:
Von:
Peter Born
Datum:
27.01.2021 11:43:30
Views:
737
Rating: Antwort:
  Ja
Thema:
Daten mit VBA mit dem Befehl getelements... scrapen

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


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Daten mit VBA mit dem Befehl getelements... scrapen
27.01.2021 11:43:30 Peter Born
NotSolved
27.01.2021 14:48:08 Gast45074
NotSolved
27.01.2021 14:53:33 Gast45074
NotSolved