如何获取要在excel Web浏览器中显示的网页元素

艾哈迈德·哈梅斯(Ahmed Khames)

我如何获取已确定网页的特定元素,以将其显示在excel WebBrowser中,例如<img>or<iframe><audio>or或<a>...等示例

我知道如果图像不是网页的一部分,则如何显示图像,如下所示。

WebBrowser1.Navigate "about:blank"
WebBrowser1.Document.Write "<img style=""width:100%;"" src=""http://www.sthua.edu.sg/images/vba-logo.jpg"">"

但我不知道如何从任何网页上按ID或类名获取元素。

煎蛋卷

这是一个示例,展示了如何class="gt-baf-table"网页translate.google.com.eg检索元素并将其置于WebBrowser1控件上UserForm1

Option Explicit

Sub Test()

    Dim objIE As Object
    Dim objNode As Object
    Dim objTable As Object
    Dim strHtmlContent As String
    Dim colSSheets As Object
    Dim objSSContent As Object
    Dim varSSheet
    Dim objWB As Object
    Dim objHead As Object
    Dim varCssNumber

    ' instantiate IE, navigate and get target DOM element
    Set objIE = CreateObject("InternetExplorer.Application")
    objIE.Visible = True ' for debug only
    objIE.Navigate "https://translate.google.com.eg/?hl=ar&tab=wT#en/ar/boy"
    Wait objIE
    WaitElementById objIE, "gt-lc"
    ' retrieve HTML content
    Set objNode = objIE.Document.GetElementById("gt-lc")
    Set objTable = objNode.GetElementsByClassName("gt-baf-table")(0)
    strHtmlContent = objTable.outerHTML
    strHtmlContent = "<body dir=rtl>" & strHtmlContent & "</body>"
    ' retrieve CSS content
    Set colSSheets = objIE.Document.styleSheets
    Set objSSContent = CreateObject("Scripting.Dictionary")
    For Each varSSheet In colSSheets
        objSSContent(objSSContent.Count) = varSSheet.cssText
    Next
    objIE.Quit
    ' Init UserForm, WebBrowser
    UserForm1.Show
    Set objWB = UserForm1.WebBrowser1
    objWB.Navigate "about:blank"
    Wait objWB
    ' put HTML and CSS content into WebBrowser
    With objWB.Document
        .Write strHtmlContent
        Set objHead = .GetElementsByTagName("head")(0)
        For Each varCssNumber In objSSContent
            objHead.appendChild .createElement("style")
            .styleSheets(.styleSheets.Length - 1).cssText = objSSContent(varCssNumber)
        Next
    End With

End Sub

Sub Wait(objIE)
    Do While objIE.ReadyState < 4 Or objIE.Busy
        DoEvents
    Loop
    Do Until objIE.Document.ReadyState = "complete"
        DoEvents
    Loop
End Sub

Sub WaitElementById(objIE, strId)
    Do While IsNull(objIE.Document.GetElementById(strId))
        DoEvents
    Loop
End Sub

的结果输出UserForm1如下:

UserForm1

和在Chrome中呈现的相同片段:

铬合金

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在网页中显示Web浏览器控制台

来自分类Dev

通过Web浏览器按ID获取元素并显示在标签中

来自分类Dev

如何定期在终端Web浏览器中重新加载网页?

来自分类Dev

如何使用Python跟踪在Web浏览器中打开的网页?

来自分类Dev

如何定期在终端Web浏览器中重新加载网页?

来自分类Dev

如何获取Web浏览器元素的CSS样式?

来自分类Dev

.Net如何获取Web浏览器中单击元素的ID

来自分类Dev

如何在网页中居中浏览器屏幕?

来自分类Dev

如何在Chrome浏览器中更正网页的字体?

来自分类Dev

如何在网页中居中浏览器屏幕?

来自分类Dev

如何更改默认网页以在浏览器中打开

来自分类Dev

在vb.net中的Mouseover上获取元素的ID(在Web浏览器中)

来自分类Dev

如何获取Liferay当前在浏览器中显示的URL?

来自分类Dev

如何使用fread在C中使用Web服务器在浏览器中显示图像?

来自分类Dev

当元素在浏览器中显示时如何获得相同的内容

来自分类Dev

如何在WPF中的Web浏览器控件中显示Unicode字符

来自分类Dev

如何突出显示在Web浏览器中打开的pdf中的文本

来自分类Dev

如何获取Internet Explorer浏览器帮助器对象中呈现网页的窗口的HWND

来自分类Dev

无法获取Web浏览器文档的元素

来自分类Dev

如何在C#中正确显示Web浏览器控件中的完整网址?

来自分类Dev

如何使用 php 显示 MSQL 表并在 Web 浏览器中编辑它

来自分类Dev

如何将 php 中的原始 xml 文件显示到 Web 浏览器

来自分类Dev

如何在单个图像中从浏览器获取整个网页的屏幕截图

来自分类Dev

如何使用Web浏览器对象显示pdf文件

来自分类Dev

如何在网页浏览器中定向网页以建立呼叫对话框?

来自分类Dev

如何在我的主目录中创建网页并使Web服务器在我的Web浏览器中为其提供服务?

来自分类Dev

如何在使用移动浏览器浏览器时防止从缓存中重新加载网页?

来自分类Dev

获取浏览器中显示的当前URL

来自分类Dev

所有的浏览器都显示垃圾文本。如何获得不垃圾的网页?

Related 相关文章

  1. 1

    如何在网页中显示Web浏览器控制台

  2. 2

    通过Web浏览器按ID获取元素并显示在标签中

  3. 3

    如何定期在终端Web浏览器中重新加载网页?

  4. 4

    如何使用Python跟踪在Web浏览器中打开的网页?

  5. 5

    如何定期在终端Web浏览器中重新加载网页?

  6. 6

    如何获取Web浏览器元素的CSS样式?

  7. 7

    .Net如何获取Web浏览器中单击元素的ID

  8. 8

    如何在网页中居中浏览器屏幕?

  9. 9

    如何在Chrome浏览器中更正网页的字体?

  10. 10

    如何在网页中居中浏览器屏幕?

  11. 11

    如何更改默认网页以在浏览器中打开

  12. 12

    在vb.net中的Mouseover上获取元素的ID(在Web浏览器中)

  13. 13

    如何获取Liferay当前在浏览器中显示的URL?

  14. 14

    如何使用fread在C中使用Web服务器在浏览器中显示图像?

  15. 15

    当元素在浏览器中显示时如何获得相同的内容

  16. 16

    如何在WPF中的Web浏览器控件中显示Unicode字符

  17. 17

    如何突出显示在Web浏览器中打开的pdf中的文本

  18. 18

    如何获取Internet Explorer浏览器帮助器对象中呈现网页的窗口的HWND

  19. 19

    无法获取Web浏览器文档的元素

  20. 20

    如何在C#中正确显示Web浏览器控件中的完整网址?

  21. 21

    如何使用 php 显示 MSQL 表并在 Web 浏览器中编辑它

  22. 22

    如何将 php 中的原始 xml 文件显示到 Web 浏览器

  23. 23

    如何在单个图像中从浏览器获取整个网页的屏幕截图

  24. 24

    如何使用Web浏览器对象显示pdf文件

  25. 25

    如何在网页浏览器中定向网页以建立呼叫对话框?

  26. 26

    如何在我的主目录中创建网页并使Web服务器在我的Web浏览器中为其提供服务?

  27. 27

    如何在使用移动浏览器浏览器时防止从缓存中重新加载网页?

  28. 28

    获取浏览器中显示的当前URL

  29. 29

    所有的浏览器都显示垃圾文本。如何获得不垃圾的网页?

热门标签

归档