0

私は私を混乱させる問題を抱えています! ウェブページから値をスクレイピングしたい。クロムとインスペクターでxpathを見つけました "//*[@id='GlobalTab0Elm']/div[2]/div[1]/div[2]/table/tbody/tr[7]/td[2]/div"

Chrome(拡張機能)のwebscraperで上記のxpathを使用すると、正常に動作します。しかし問題は、これが私の単純なプログラムでは機能しないことです。

     Dim Handler As HtmlAgilityPack.HtmlWeb.PreRequestHandler = Function(request As HttpWebRequest)
                                                                       request.Headers(HttpRequestHeader.AcceptEncoding) = "gzip, deflate"
                                                                       request.AutomaticDecompression = DecompressionMethods.Deflate Or DecompressionMethods.GZip
                                                                       request.CookieContainer = New System.Net.CookieContainer()
                                                                       Return True
                                                                   End Function
        Dim webClient As HtmlWeb = New HtmlWeb()
        webClient.PreRequest = Handler


        webClient.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5"
        webClient.UseCookies = True

        Dim htmlDoc = webClient.Load("http://www.tsetmc.com/Loader.aspx?ParTree=15")
        htmlDoc.OptionReadEncoding = False
        Dim S As String
        S = "//*[@id='GlobalTab0Elm']/div[2]/div[1]/div[2]/table/tbody/tr[7]/td[2]/div"
        Dim node = htmlDoc.DocumentNode.SelectSingleNode(S)
    TextBox1.Text = (node.InnerText)

私の質問は、この xpath が他のスクレーパーで機能するのに、これらのコードでは機能しないのはなぜですか? 私がしなければならないこと ?この行でエラーが発生します:

TextBox1.Text = (node.InnerText)

エラーテキストは

Object reference not set to an instance of an object.

このxpathを使用するとき

"//*[@id='company_text']/text()[2]"

xpathの正しい値が見つかりました。

私の問題は、このxpathでは機能しないことです。

"//*[@id='GlobalTab0Elm']/div[2]/div[1]/div[2]/table/tbody/tr[7]/td[2]/div"
4

1 に答える 1