Clever-Excel-Forum

Normale Version: Durch javascripts erstellte webinhalte importieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo

ich möchte wie der Titel bereits sagt, webinhalte die durch Javascripts generiert werden in excel durch vba einfügen

ich habe auf 
http://stackoverflow.com/questions/21039...-a-webpage

Code:
Sub Dow_HistoricalData()

   Dim xmlHttp As Object
   Dim TR_col As Object, TR As Object
   Dim TD_col As Object, TD As Object
   Dim row As Long, col As Long

   Set xmlHttp = CreateObject("MSXML2.XMLHTTP.6.0")
   xmlHttp.Open "GET", "http://www.investing.com/indices/us-30-historical-data", False
   xmlHttp.setRequestHeader "Content-Type", "text/xml"
   xmlHttp.send

   Dim html As Object
   Set html = CreateObject("htmlfile")
   html.body.innerHTML = xmlHttp.ResponseText

   Dim tbl As Object
   Set tbl = html.getElementById("curr_table")

   row = 1
   col = 1

   Set TR_col = html.getelementsbytagname("TR")
   For Each TR In TR_col
       Set TD_col = TR.getelementsbytagname("TD")
       For Each TD In TD_col
           Cells(row, col) = TD.innerText
           col = col + 1
       Next
       col = 1
       row = row + 1
   Next
End Sub

ich kriege jedoch den fehler Laufzeitfehler 70 beim ausführen.


habe ich den code an der richtigen stelle eingefügt oder funktioniert der code einfach nicht?

danke für jegliche hilfe im vorraus

Hallo,

ein erster Test bestätigte nach ".send" die Antwort der Webseite: "Zugriffsverletzung"

Die Vermutung ist, dass die Webseite den Zugriff eines Scripts erkennt und "blockt". Da ein Öffnen per Hand (Firefox) wäre zu überlegen, ob das vba-Script den IE steuern sollte.

mfg

(keine weiteren Tests meinerseits)

(NAchtrag: im Header steht: <meta name="robots" content="NOODP">, die html - Spezialisten dürfen wissen, ob das den Zugriff blockt)
Hallo,

wenn ich dich richtig verstanden habe, dürfte das mit Power Query leicht zu machen sein. Ab xl2016 musst Du nicht mal mehr ein zusätzliches Addin laden.

Die Daten sind immer aktuell und du benötigst kein VBA.
Hallo,

eine sehr oberflächliche Durchsicht des Quellcodes läßt mich vermuten, dass auf der Seite viele Überwachungsfunktionen eingebaut sind.

Wen es interessiert:

mfg
hallo

vielen dank für die Antwort

der link in dem code war der original link von der website.

ich will eine andere Website importieren und wollte erstmal prüfen ob das überhaupt funktioniert.

http://eu-bns.ncsoft.com/ingame/bs/chara...c=(+inhalt von a1-100)
zb.
http://eu-bns.ncsoft.com/ingame/bs/chara...?c=rjinxil
diese markierten werte im bild

zwar bekomme ich keine Fehlermeldung zurück mit dem code jedoch wird auch nichts importiert, was (glaube ich) daran liegt, dass der Code eine TABELLE nach ihrem namen importiert 
Code:
  Set tbl = html.getElementById("curr_table")

jedoch sind meine vba Kenntnisse gleich 0, und ich habe auch kein Ansatz wie ich den code so verändern kann, dass er nicht die Tabelle sondern die benötigten werte importiert.

mein alter code ist:
Code:
=TRANSPOSE(IMPORTXML("http://eu-bns.ncsoft.com/ingame/bs/character/profile?c="&$A1,"(//dd[@class='desc']//li)[1] | (//div[@class='name'])[1] | (//div[@class='name'])[3] | (//div[@class='name'])[4] | (//div[@class='name'])[5] | (//div[@class='name'])[7] | (//span[@class='stat-point'])[1]"))
dieser funktioniert jedoch nicht, da die werte von der Seite jetzt mit einem Javascript geladen werden

kann ich diese pfade einfach irgendwie in der vba code übernehmen?

vielen dank im vorraus

Rjinxil
(06.05.2017, 17:11)Jonas0806 schrieb: [ -> ]Hallo,

wenn ich dich richtig verstanden habe, dürfte das mit Power Query leicht zu machen sein. Ab xl2016 musst Du nicht mal mehr ein zusätzliches Addin laden.

Die Daten sind immer aktuell und du benötigst kein VBA.

hallo

wie genau nutze ich power query. oder welche formel nutze ich in 2016?
Moin,
aus meiner Sicht haut das mit Power Query nicht hin. PQ kann aus Webseiten (nur) HTML-Tabellen ansprechen und auslesen. Und bei einer (zugegebenermaßen oberflächlichen) Durchsicht des Codes der Seite habe ich kein TABLE-Tag gefunden. Vielleicht gibt es ja noch eine andere Seite, wo nicht die (schrille) Optik sondern die klassische Information im Vordergrund steht und die in HTML(5) erstellt wurde.