【发布时间】:2017-04-18 12:57:15
【问题描述】:
我正在尝试从网站获取值。这些值在一个 div 内,在那个“主 div”下还有更多的 div(如果我可以这样称呼它)。 我想要的是获取“主 div”内的那些 div 值。 我试过这段代码:
string url = "www.examplesite.com";
HtmlWeb web = new HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = web.Load(url);
HtmlNodeCollection collection = doc.DocumentNode.SelectNodes("//div[@id='plex_container']");
foreach (HtmlNode node in collection)
{
string cptitle = node.SelectSingleNode(".//div[@id='pltexts']").InnerText;
listBox1.Items.Add(cptitle);
}
网站的结构(在 F12 运行时)如下所示:
<body onload="initialize()" id="dashboard">
<div id="header">...</div>
<div id="dashboard_container">
<div id="comm" class="comm_expanded">
<div id="pl_header_tab">...</div>
<div id="pltext_tab">...</div>
<div id="plex_container">
<div id="pl_status"></div>
<div id="pltexts">
<div class="plext">...</div> // <-- Im trying to get these values
<div class="plext">...</div> // <--
<div class="plext">...</div> // <--
<div class="plext">...</div> // <--
<div class="plext">...</div> // <--
我收到 foreach 的“对象引用未设置为对象的实例”错误...
【问题讨论】:
-
您的 html 不包含 id=
plext_container的 div,它也是pltexts而不是plexts -
对不起,我拼错了。我编辑了帖子。
标签: c# html xpath html-agility-pack