使用HtmlAgilityPack的时候遇到的问题

dyer1 2018-07-18 06:00:41
 void button1_Click(object sender, EventArgs e)
{


var webClient = new HtmlWeb();
var doc = webClient.Load("http://quote.eastmoney.com/centerv2/hszs");

var res = doc.DocumentNode.SelectSingleNode("//*[@id='hszs_hszyzs_simple']/tr[1]/td[3]");
//这里的XPATH本来是//*[@id="hszs_hszyzs_simple"]/tbody/tr[1]/td[3],删除了tbody,为什么一直找不到呢

//var res = doc.DocumentNode.SelectNodes("//*[@id='forNewBrowser_Pic']/div[1]/div[1]/a/strong");
//var res = doc.DocumentNode.SelectSingleNode("//*[@id='forNewBrowser_Pic']/div[1]/div[1]/a/strong");

if (res != null)
{
Console.WriteLine(res.InnerText);
//Console.WriteLine(res.First().InnerText);
}
else
{
Console.WriteLine("res 是空的");
}


}



想获取图示的 上证指数 这个位置上的文字
...全文
343 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
checkfly 2018-08-10
  • 打赏
  • 举报
回复
请问有没有找到原因?我抓取 http://q.stock.sohu.com/cn/msq.shtml?q=cn_300001, 也是一样的结果 没有数据
要是找到原因 了 请将代码粘贴出来 谢谢
dyer1 2018-07-20
  • 打赏
  • 举报
回复
嗯呢。是这样的,
wolftrace 2018-07-19
  • 打赏
  • 举报
回复
var doc = webClient.Load("http://quote.eastmoney.com/centerv2/hszs");
这段代码得到的是一个框架页面,其内部的数据随便会经由其中的script定时调用,所以你需要的真正数据并不在这个页面中,所以HtmlAgilityPack抓不到很正常。
你应该查找一下真正包含你需要数据的uri地址,并重新load

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧