好的,所以HTMLAgilityPack XPath对我来说似乎很受欢迎,但我似乎无法在引用异常消息“NullReferenceException”时找到问题。下面是我的代码,但对于这个特定的数据,我得到的是NullReferenceExcepttion。
XPath是Chrome浏览器的直接副本,似乎适用于大多数HTML,但不是特定的。以下是代码。
string Url = "https://www.nasdaqtrader.com/Trader.aspx?id=TradeHalts";
HtmlWeb web = new HtmlWeb();
HtmlDocument doc = web.Load(Url);
string haltDate = doc.DocumentNode.SelectNodes("//*[@id=\"divTradeHaltResults\"]/div/table/tbody/tr[2]/td[1]")[0].InnerText;
string haltTime = doc.DocumentNode.SelectNodes("//*[@id=\"divTradeHaltResults\"]/div/table/tbody/tr[2]/td[2]")[0].InnerText;
string haltSymbol = doc.DocumentNode.SelectNodes("//*[@id=\"divTradeHaltResults\"]/div/table/tbody/tr[2]/td[3]")[0].InnerText;
下面是我的XPATH中可以遵循的HMTL块。似乎没有找到为什么它不拉日期,时间,象征等的文本值的问题。任何帮助表示赞赏。
<div id="divTradeHaltResults"><div class="genTable"><table>
<tbody><tr>
<th class="gtcol1">Halt Date</th>
<th class="gtcol2">Halt Time</th>
<th class="gtcol3">Issue Symbol</th>
<th class="gtcol4">Issue Name</th>
<th class="gtcol5">Market</th>
<th class="gtcol6">Reason Codes</th>
<th class="gtcol7">Pause Threshold Price</th>
<th class="gtcol8">Resumption Date</th>
<th class="gtcol9">Resumption Quote Time</th>
<th class="gtcol10">Resumption Trade Time</th>
</tr>
<tr>
<td>04/28/2017 </td>
<td>08:35:42 </td>
<td>ZLTQ</td>
<td>ZELTIQ Aesthetics Inc</td>
<td>NASDAQ</td>
<td><div style="padding-bottom:2px"><a href="#" title="T12 Halt - Trading">T12</a></div></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody></table></div>
</div>
更新:还尝试了Selenium Firefox WebDriver并且仍然没有获得任何数据。以下是代码段:
IWebDriver driver = new FirefoxDriver();
driver.Navigate().GoToUrl("http://weather.deltixlab.com");
IWebElement inputs = driver.FindElement(By.XPath("//*[@id='free-data-table']/tbody/tr[1]/td[2]"));
string day1 = inputs.ToString();