如何使用VBA在网页上加载更多结果?

时间:2017-01-09 18:26:17

标签: vba excel-vba internet-explorer dom web-scraping

我想在下面的链接中使用VBA加载更多结果: http://www.flashscore.com/soccer/england/premier-league/results/

首次加载页面只显示总结果的一半,但我想从页面加载所有数据。

我想我不得不点击"显示更多匹配"链接,但我不知道如何做到这一点。

任何人都可以帮我解决任何想法吗?

如果我要加载更多游戏,在第一次点击加载后,更多游戏仍会隐藏游戏,我怎么能看到所有游戏?

链接的源代码是:

<a href="#" onclick="loadMoreGames(); return false;">Show more matches</a>

下面你可以找到链接的屏幕截图:

Image link

1 个答案:

答案 0 :(得分:2)

您可以在锚节点loadMoreGames()中看到分配给onclick事件的函数名<a href="#" onclick="loadMoreGames(); return false;">Show more matches</a>,因此您可以调用该函数而不是click()并循环等待直到装载完成为@RyszardJędraszyk评论:

Sub Test()

    With CreateObject("InternetExplorer.Application")
        .Visible = True
        .Navigate "http://www.flashscore.com/soccer/england/premier-league/results/"
        Do: DoEvents: Loop While .Busy Or .readyState <> 4
        Do: DoEvents: Loop While .Document.readyState <> "complete"
        .Document.parentWindow.execScript "loadMoreGames();"
        Do: DoEvents: Loop While .Document.getElementById("preload").Style.display = "none"
    End With

End Sub