我需要获取有关网页的具体数据并将其放在excel上

时间:2012-10-11 05:54:52

标签: excel vba internet-explorer

我需要一个最可能是宏的程序来访问当前打开的网页,然后获取特定数据,然后将其粘贴到excel文件中。

我无法在Excel上使用网页查询,因为我需要访问的网站受密码保护。

我大约每天将数据从100个网页粘贴到2000个网页。

我需要从网页上获取的示例数据显示如下:

@Serial Code: 123345 ; @Database: DB001 ; @Title: Sample Tile

在excel中它应该是: | 12345 | DB001 |样本标题

所以我需要的是 1.转到网页 2.运行宏以获取数据 3.转到下一个网页

我希望你能帮助我

3 个答案:

答案 0 :(得分:1)

对于大多数功能强大的套件,您可以将脚本语言与Web客户端一起使用,例如perlpython。我用perl完成了这个。

对于密码问题,请先提交您的登录信息并保存 cookies ,然后使用Cookie访问受密码保护的内容。

将页面内容保存为文本文件,解析它以提取字段。

答案 1 :(得分:1)

示例如何从vba读取html:     选项明确

' Add References:
' - Microsoft HTML Object Library
' - Microsoft Internet Controls

Private Const URL As String = "C:\temp\Test.html"
Sub Test()

  Dim browser As InternetExplorer
  Set browser = New InternetExplorer

  With browser
    browser.Visible = True
    browser.Navigate URL
    Do: Loop Until browser.Busy = False
  End With

  Dim htmlDocument As htmlDocument
  Set htmlDocument = browser.Document

  ' input
  Dim inputElement As HTMLInputElement
  Set inputElement = htmlDocument.getElementById("input1")

  If (inputElement Is Nothing) Then
    Err.Raise 123456789, , "inputElement is nothing. ID not found."
  End If

  [a1] = inputElement.Value

  browser.Quit
  Set browser = Nothing
End Sub

答案 2 :(得分:0)

我不知道是否有任何现成的宏来完成这项工作,但你可以通过创建自定义应用程序来实现。

  1. 逐个获取网页浏览源
  2. 解析页面视图源并检索@Serial Code,@ Database,@ Title的值 - 使用字符串操作
  3. 使用一些插件将所有数据转储到excel中。