【问题标题】:Extracting Data from HTML File (VBA?)从 HTML 文件中提取数据(VBA?)
【发布时间】:2016-11-23 22:07:01
【问题描述】:

我目前正在从事一个项目(我是一名实习生),预计需要几周时间才能完成。它基本上是从一个网站到另一个网站的迁移复制和粘贴工作。为了节省自己的时间、无聊和可能为自己赢得一份工作(如果我能够及时完成这项工作),我正在寻找自动化流程的方法。目前我已经想到了这个过程中的每一步,但只有一个。

基本上,我有另一个自动化程序下载 html 文件并将其转换为站点上需要复制到新页面(超过 1000 个)的每个页面的文本文件。我需要对这个 html 文件做的是只提取正文,我已经确定了要从中提取的起点和终点。这两个都出现在所有的 html 文件中。

我目前正在尝试在 excel 中使用 VBA 打开文件,提取数据并将结果写入新文件,从这里我可以自动化复制和粘贴过程。

我不知道如何在这两点之间提取数据。我可以在两个字符串之间提取数据,即“开始”和“结束”,但是,我似乎无法在两个 html 标记之间提取数据。任何建议都会很棒。我不是程序员,我正在快速学习以便尽快完成这个项目。

再次感谢。

【问题讨论】:

  • 如果你能做到startend,为什么你不能做到<body></body>?欢迎来到 Stack Overflow - 人们普遍感谢您发布您已经尝试解决问题的代码......

标签: html css vba excel


【解决方案1】:

一般是这样的:

Sub Test() Dim IE As Object

Set IE = CreateObject("InternetExplorer.Application")
With IE
    .Visible = True
    .Navigate "http://www.marketwatch.com/investing/stock/aapl/analystestimates" ' should work for any URL
    Do Until .ReadyState = 4: DoEvents: Loop

        x = .document.body.innertext
        y = InStr(1, x, "Average Target Price:")
        Z = Mid(x, y, 6)

        Range("A1").Value = Trim(Z)

        .Quit
    End With
End Sub

在您的具体情况下,应该是这样的:

a = .document.body.innertext
b = InStr(1, x, "Start")
c = InStr(1, y, "End")

d = Mid(a, b, (c-b))

Range("A1").Value = Trim(d)

【讨论】:

  • 我需要将每个维度设置为什么?还是我没有?
猜你喜欢
  • 2019-11-20
  • 1970-01-01
  • 2021-06-06
  • 1970-01-01
  • 2018-04-24
  • 2021-06-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-21
相关资源
最近更新 更多