首页 > 解决方案 > 为什么我总是得到空值

问题描述

我正在尝试制作一个模块来为该网站提供网络抓取数据以使其表现出色,但我一直得到空值,任何人都可以帮助我

所以这是我的模块

Sub StockRetrieve()

    Dim bot As New WebDriver
    
    bot.Get "https://stockbit.com/#/symbol/NELY/financials"
    
    bot.FindElementByXPath("//*[@id='content-box']/div[3]/div[2]/div[1]/div[3]/select").Click
    bot.FindElementByXPath("//option[@value='bs']").Click
    asset2020 = bot.FindElementByXPath("//table[contains(@class,'fin-table')]/tbody/tr[23]/td[2]").TextAsNumber
    Sheets(1).Range("B2").Value = asset2020

    Stop
End Sub

标签: excelvbaseleniumweb-scrapingxpath

解决方案


可能是一条或多条路径是错误的。单步执行代码并在每一步验证elem的值。如果一切看起来都不错,那么您确定您要读取的值不为空吗?

Sub StockRetrieve()

    Dim bot As New WebDriver
    Dim elem as Variant

    bot.Get "https://stockbit.com/#/symbol/NELY/financials"

    elem = bot.FindElementByXPath("//*[@id='content-box']/div[3]/div[2]/div[1]/div[3]/select")
    elem.Click 

    elem = bot.FindElementByXPath("//option[@value='bs']")
    elem.Click 

    elem = bot.FindElementByXPath("//table[contains(@class,'fin-table')]/tbody/tr[23]/td[2]")

    asset2020 = elem.TextAsNumber 
    Sheets(1).Range("B2").Value = asset2020

End Sub

推荐阅读