HtmlAgilityPackからSelectSingleNodeを使用して特定のノードを見つける方法

html-agility-pack html-parsing selectsinglenode vb.net

質問

HtmlAgilityPackの使用私は、このWebサイトのノードからテキスト「9/30/2013」を取得しようとしています。http : //www.nasdaq.com/symbol/goog/financials? query=income-statement&data=quarterly

ここにウェブサイトのHTMLがあります

<div id="financials-iframe-wrap">
<br>
<div class="nextgen thin">
<div class="table-headtag">
<div style="float:left;">
<h3 style="color:#fff;">Quarterly Income Statement (values in 000's)</h3>
</div>
<div style="float:right;">
<h3><a id="quotes_content_left_hlswitchtype" href="http://www.nasdaq.com/symbol/goog/financials?query=income-statement" style="color:#fff;">Get Annual Data</a></h3>
</div>
</div>
<div style="clear:both"></div>
<table>
<tbody><tr class="tr_BG_Color">
<th class="th_No_BG">Quarter:</th>
<th style="text-align:left;">Trend</th>
<th>3rd</th>
<th>2nd</th>
<th>1st</th>
<th>4th</th>
</tr>
<tr class="tr_BG_Color">
<th class="th_No_BG">Quarter Ending:</th>
<th></th>
<th>9/30/2013</th>
<th>6/30/2013</th>
<th>3/31/2013</th>
<th>12/31/2012</th>
</tr>

そして、ここに私のコードです

<div id="financials-iframe-wrap">
<br>
<div class="nextgen thin">
<div class="table-headtag">
<div style="float:left;">
<h3 style="color:#fff;">Quarterly Income Statement (values in 000's)</h3>
</div>
<div style="float:right;">
<h3><a id="quotes_content_left_hlswitchtype" href="http://www.nasdaq.com/symbol/goog/financials?query=income-statement" style="color:#fff;">Get Annual Data</a></h3>
</div>
</div>
<div style="clear:both"></div>
<table>
<tbody><tr class="tr_BG_Color">
<th class="th_No_BG">Quarter:</th>
<th style="text-align:left;">Trend</th>
<th>3rd</th>
<th>2nd</th>
<th>1st</th>
<th>4th</th>
</tr>
<tr class="tr_BG_Color">
<th class="th_No_BG">Quarter Ending:</th>
<th></th>
<th>9/30/2013</th>
<th>6/30/2013</th>
<th>3/31/2013</th>
<th>12/31/2012</th>
</tr>

コードが最後の行に到達すると、このエラーが発生します。 Object reference not set to an instance of an object.Object reference not set to an instance of an object.

Debug.WriteLine(document.DocumentNode.SelectSingleNode("//*[@id='financials-iframe-wrap']/div/table/tbody/tr[2]/th[3]"))を使用してデバッグした場合Debug.WriteLine(document.DocumentNode.SelectSingleNode("//*[@id='financials-iframe-wrap']/div/table/tbody/tr[2]/th[3]")) a空白が返されます。

私は間違って何をしていますか?

人気のある回答

まず、なぜHttpWebRequestオブジェクトを作成していますか? Html Agility Packにあなたのために重労働をさせてください:

    Dim doc As New HtmlAgilityPack.HtmlDocument()

    Dim web As New HtmlAgilityPack.HtmlWeb()

    web.UseCookies = True

    doc = web.Load("http://www.nasdaq.com/symbol/goog/financials?query=income-statement&data=quarterly")

HtmlDocumentが読み込まれると、日付が抽出されます:

    Dim doc As New HtmlAgilityPack.HtmlDocument()

    Dim web As New HtmlAgilityPack.HtmlWeb()

    web.UseCookies = True

    doc = web.Load("http://www.nasdaq.com/symbol/goog/financials?query=income-statement&data=quarterly")

私はこれを数回試して、それは完全に動作します。




ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ