网页 抓取 innertext 试题(如何通过VBA抓取IFRAME中的文本?(问题描述))

优采云 发布时间: 2022-04-15 12:28

  网页 抓取 innertext 试题(如何通过VBA抓取IFRAME中的文本?(问题描述))

  问题描述

  我们的业务使用基于浏览器的操作程序进行操作。我正在自动化一个解决方案来浏览这个 网站 并在最后检索一些数据。

  网站 本身就是非常重要的框架。但是,在我的过程结束时,它将我的数据填充到一个框架中,但是一个 iframe。在 网站 中也非常广泛的 JavaScript,使事情变得混乱。

  获取 iframe 的 src url 并在新浏览器中打开页面(即页面显示错误文本而不是内容)。

  我的问题:

  如何通过 VBA 抓取 IFRAME 中的文本?

  到目前为止我尝试过的事情(请随意跳过):

  以特定框架中的特定 iframe 为目标,并抓取 innerhtml

  With ie.document.frames(myFrameNum).document.getElementsByTagName("iframe")(1).document.body

stringResult = .innerHTML

  在特定框架中定位具有 id 的特定 iframe 并获取 innerhtml

  Dim iFrm As HTMLIFrame

Set iFrm = ie.document.frames(myFrameNum).document.getElementByID("iFrameID")

Debug.Print iFrm.document.body.innerText

  查找 iframe 的任何实例,然后抓取它们(没有结果 - 可能是因为 iframe 嵌入在框架中?)

  Dim iFrm As HTMLIFrame

Dim doc As HTMLDocument

For iterator = 0 To ie.document.all.Length - 1

If TypeName(ie.document.all(iterator)) = "HTMLIFrame" Then

Set iFrm = ie.document.all(iterator)

Set doc = iFrm.document

Debug.Print & doc.body.outerHTML

End If

Next

  推荐答案

  我遇到了同样的问题,我使用以下脚本得到了解决方案..

  ie.document.geteLementsByTagname("iframe")(0).contentDocument .getElementsByTagname("body")(0).innertext

  其他推荐答案

  试试这个...

  Dim elemCollection As IHTMLElementCollection

Set elemCollection = objDoc.frames("iFrameID").document.all

Debug.Print elemCollection.Item("pagemenuli-adv").innerText

  其他推荐答案

  我遇到了类似的问题,终于解决了:

  objie.document.frames(0).document.forms(0).innertext

  注意:我需要的文本在 IF 框架中。

  我是新的 VBA,可以在框架中解释(0)/form(0) 0 的主体到底是什么?

  如果它是帧索引或帧号(我假设),请告诉我我们如何找到帧索引(在任何 HTML 中)?

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线