【问题标题】:Importing table to Excel that was generated by a script from a webpage将由网页中的脚本生成的表格导入 Excel
【发布时间】:2017-06-16 16:45:37
【问题描述】:

我一直在尝试将下表导入 Excel

www.bursamalaysia.com/market/securities/equities/indices/

我尝试过 PowerQuery、“来自 Web”的数据选项卡等。根据我的研究,我开始相信 Excel 无法“看到”数据的原因是因为它是使用 Javascript 动态生成的。

如果尝试通过 PowerQuery 甚至 VBA 脚本将表格转换为 Excel,我将不胜感激。

我看到了类似的 at this 并对其进行了如下修改,但我得到了一个空表。

Sub Bursa_Indices()

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.bursamalaysia.com/market/securities/equities/indices/", 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("bm_indices_prices_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

结束子

提前致谢。

【问题讨论】:

  • 请发布您正在运行的 VBA 脚本以及您遇到的错误。
  • VBA 脚本的错误是stackoverflow.com/questions/21039677/… 的错误我想我已经找出了错误。网址已从 http 更改为 https。我正在尝试将其修改为我的网址,但到目前为止只是空白。

标签: html excel vba import powerquery


【解决方案1】:

使用 Power Query / Get & Transform 看起来非常简单。我使用了 New Query / From Web / 粘贴该 URL / 选择名为“RSS Feeds”的表格。

【讨论】:

  • 我需要的表是“索引”表。不知何故,我无法通过 Power Query 到达那里。谢谢。
  • 该表中的数据正是我在 Power Query 中查看的数据。
  • 我现在再试一次,我只能看到“文档”。昨天是市场假期,我可以看到“文档”和“RSS 源”。但是,我根本无法获得“索引”表。我想知道表格渲染时间是否是一个因素。我正在使用:带有 Power Query 2.39.4526.123 32 位的 Microsoft Office 2013
  • 谢谢。我已将 Power Query 更新到最新版本:2.40.4554.161 32 位重试链接并选择 RSS 源后,加载的唯一表是:“媒体发布”“订阅”不幸的是,未加载索引表。
  • 我现在得到了相同的结果。您可能需要使用专门的网络抓取工具。
猜你喜欢
  • 2020-08-11
  • 2014-01-16
  • 1970-01-01
  • 1970-01-01
  • 2014-01-29
  • 2017-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多