【问题标题】:scraping web vba oncick抓取 web vba onclick
【发布时间】:2018-10-04 12:50:53
【问题描述】:

在链接https://www.forebet.com/en/predictions-tips-atl%C3%A9tico-madrid-real-madrid-553878我想加载你点击“uo_t_butt”页面上的文档

我用

创建脚本
Sub provaonclick()

Dim objIE As Object
Dim ele As Object
Dim ele1 As Object


Set objIE = CreateObject("internetexplorer.application")
objIE.Visible = True
objIE.navigate "https://www.forebet.com/it/pronostico-per-real-madrid-liverpool-fc-731893"
Do While objIE.Busy = True Or objIE.readyState <> 4: DoEvents: Loop
Set ele = objIE.document.getElementsByClassName("tabs-ul")(0)
Set ele1 = ele.document.getElementById("uo_t_butt").Click

End Sub

但在对象 ele1 中什么都没有

【问题讨论】:

  • 你的问题不清楚。你说click on "uo_t_butt",但从未澄清什么是uo_t_butt。这是一个类或id还是别的什么?此外,脚本中的链接和描述中的链接是不同的。尝试编辑您的问题以消除混淆@plinius。

标签: html vba web-scraping onclick


【解决方案1】:

我认为你的问题是它是一个控制按钮的 javascript。

HTML 和 javascript 不是我的强项,但以下代码对我有用:

Sub provaonclick()
Dim objIE As Object

Set objIE = New InternetExplorerMedium
objIE.Visible = True
objIE.navigate "https://www.forebet.com/it/pronostico-per-real-madrid-liverpool-fc-731893"
Do While objIE.Busy = True Or objIE.readyState <> 4: DoEvents: Loop

With objIE.Document.getElementById("uo_t_butt")
    .Focus
    .Click
End With

End Sub

".Focus" 使代码为我工作。我不知道它是做什么的。

编辑:实际上没有在 "objIE.Document.getElementById("uo_t_butt").click" 前面使用集合是不同的。

【讨论】:

  • 因为根据我的回答,您已经删除了生成 JScriptTypeInfo 对象的 .Click。
  • 是的,您已经更改了答案并进行了一些解释。谢谢你的解释。
【解决方案2】:

您通常不能在设置元素的同时尝试点击它。 Set 关键字用于分配引用。有必要区分对象的赋值和对象的默认属性的赋值。您将传递的正是这种引用类型。

这个:

Set ele1 = ele.document.getElementById("uo_t_butt").Click

通常,这会引发错误。奇怪的是,生成了一个 JavaScript 项目,它是 JScriptTypeInfo。这个,根据this,可能

隐藏了一些可以在 JScript.dll 中找到的对象。

从末尾删除操作(.Click)以正常方式设置对象,您不需要初步对象。 document 的直接工作,ID 为。

我使用 id 没有问题:

objIE.document.querySelector("#uo_t_butt").Click

您可以使用属性 = 值 CSS 选择器

objIE.document.querySelector("[onclick*='uo']").Click

这将切换到unders/overs 选项卡。

也可以使用:

objIE.document.querySelector("[id='uo_t_butt']").Click

【讨论】:

  • 对不起是我的错误我想加载所有文档而不是单击命令,实际上单击并在打开的浏览器中加载页面并解决了它所以 ele.document.getElementById("uo_t_butt" ).点击
  • 我给出的答案是什么。
【解决方案3】:
Sub provaonclick()
Dim objIE As Object
Dim ele As Object

Set objIE = CreateObject("internetexplorer.application")
objIE.Visible = True
objIE.navigate "https://www.forebet.com/it/pronostico-per-real-madrid-liverpool-fc-731893"
Do While objIE.Busy = True Or objIE.readyState <> 4: DoEvents: Loop
objIE.document.getElementById("uo_t_butt").Click

Set ele = objIE.document.getElementsByClassName("schema")(1)
Stop
End Sub

对不起,我以为我已经解决了,但我的宏只是点击“onclick”,但没有在“ele”中加载新页面。 在“ele”中,我找到打开的第一页不是点击的页面

【讨论】:

    猜你喜欢
    • 2019-06-21
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    • 1970-01-01
    • 2021-08-08
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    相关资源
    最近更新 更多