如何使用VBA Excel从资源获取og:image

问题描述

如何通过og:image VBA从资源中获取excel 2007

例如,此URL:

https://www.bbc.com/reel/video/p08jgfdg/the-truth-about-christopher-columbus

解决方法

使用最新版本的Excel,您可以尝试以下操作:

Sub GetImageFromHead()

    Dim MyUrl As String
    MyUrl = "https://www.bbc.com/reel/video/p08jgfdg/the-truth-about-christopher-columbus"

    'Required library reference: Microsoft XML v6.0
    Dim HttpRequest As MSXML2.XMLHTTP60
    Set HttpRequest = New MSXML2.XMLHTTP60
    HttpRequest.Open "GET",MyUrl,False
    HttpRequest.Send
    
    Dim HtmlDoc As Object
    Set HtmlDoc = CreateObject("htmlfile")
    HtmlDoc.Write HttpRequest.responseText
    
    'Required library reference: Microsoft HTML Object
    Dim MetaCollection As MSHTML.IHTMLElementCollection
    Set MetaCollection = HtmlDoc.getElementsByTagName("meta")
    
    Dim HtmlElement As MSHTML.IHTMLElement
    For Each HtmlElement In MetaCollection
        If HtmlElement.getAttribute("property") = "og:image" Then
            ActiveSheet.Pictures.Insert (HtmlElement.getAttribute("content"))
        End If
    Next

End Sub

但是由于您的问题是针对Excel 2007的,因此您必须像这样定义HttpRequest

    'Required library reference: Microsoft XML v3.0 or v5.0
    Dim HttpRequest As MSXML2.XMLHTTP
    Set HttpRequest = New MSXML2.XMLHTTP

如果您想要一个仅将URL作为字符串返回的函数,则可以轻松地编辑Sub过程,使其成为以MyUrl作为参数并返回字符串的函数,而不是使用它在其中插入图像Activesheet(like this for example)。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...