excel网页数据抓取vba(和DOM将是最好的方法吗?(上))

优采云 发布时间: 2021-09-24 09:21

  excel网页数据抓取vba(和DOM将是最好的方法吗?(上))

  无法抑制“另存为”对话框:

  从脚本调用此方法时,无法禁用“保存HTML文档”对话框

  它也是一个模式对话框,您不能自动单击&34;节约34英镑;按钮面对此对话时,VBA执行会在等待手动用户输入时暂停

  您可以尝试读取页面的HTML并使用标准I/O函数将其打印到文件中,而不是使用ie.document.execcommand方法

  Option Explicit

Sub SaveHTML()

Dim URL as String

Dim IE as Object

Dim i as Long

Dim FileName as String

Dim FF as Integer

URL = "http://google.com" 'for TEST

Filename = "C:\Test.htm"

Set IE = CreateObject("Internetexplorer.Application")

IE.Visible = True

IE.Navigate URL

Do

Loop While IE.Busy

'Creates a file as specified

' this will overwrite an existing file if already exists

CreateObject("Scripting.FileSystemObject").CreateTextFile FileName

FF = FreeFile

Open Filename For Output As #FF

With IE.Document.Body

Print #FF, .OuterHtml & .InnerHtml

End With

Close #FF

IE.Quit

Set IE = Nothing

End Sub

  我不确定这是否能完全满足你的需要。还有其他从网络获取数据的方法。最好的方法是从xmlhttp请求中获取原创HTML并将其打印到文件中

  当然,我们很少需要HTML格式的整个网页,因此如果您想从网页中获取特定数据,xmlhttp和DOM将是最好的方法,您根本不需要将其保存到文件中

  或者,您可以使用selenium包装器来自动化ie,这比在Internet Explorer中使用相对较少的本机方法要强大得多。应用程序类

  还请注意,您使用的是一种相当粗糙的方法来等待网页加载(在ie.busy时循环)。虽然它有时可能工作,但可能不可靠。关于如何在so上正确执行此操作,有很多问题,因此我将在这里参考您的搜索功能来稍微调整代码

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线