gromit1
gromit1

Reputation: 587

HtmlAgilityPack Error: Object reference not set to an instance of an object

I have been using this code for months and it has been working perfectly for me but now I am getting this error: Object reference not set to an instance of an object. at this line of code:

Dim Page_Most_Recent_Quarter As Date = document.DocumentNode.SelectSingleNode("//*[@id='financials-iframe-wrap']/div/table//tr[2]/th[3]").InnerText

Here is the full code:

Dim wreq As HttpWebRequest = WebRequest.Create("http://www.nasdaq.com/symbol/GOOG/financials?query=income-statement&data=quarterly")
    wreq.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5"
    wreq.Method = "get"
    Dim prox As IWebProxy = wreq.Proxy
    prox.Credentials = CredentialCache.DefaultCredentials
    Dim document As New HtmlAgilityPack.HtmlDocument
    Dim web As New HtmlAgilityPack.HtmlWeb
    web.UseCookies = True
    web.PreRequest = New HtmlAgilityPack.HtmlWeb.PreRequestHandler(AddressOf onPreReq)
    wreq.CookieContainer = cookies
    Dim res As HttpWebResponse = wreq.GetResponse()
    document.Load(res.GetResponseStream, True)
    Dim Page_Most_Recent_Quarter As Date = document.DocumentNode.SelectSingleNode("//*[@id='financials-iframe-wrap']/div/table//tr[2]/th[3]").InnerText

I don't think anything has change that would affect this code. I cannot figure out what is wrong.

Upvotes: 0

Views: 1391

Answers (1)

Steve
Steve

Reputation: 5545

I would guess that node does not exist or has been renamed. This is a public website that will make changes to thier stuff on occation. Because it did not find it, it is a NOTHING and you cannot perform a .InnerText on a nothing.

Try putting document.DocumentNode.SelectSingleNode("//*[@id='financials-iframe-wrap']/div/table//tr[2]/th[3]") into another variable and inspect it while debugging.

Upvotes: 1

Related Questions