我正在尝试解析网页http://www.bbb.org/kitchener/accredited-business-directory?letter=a
中的数据我希望获得所有类别
会计师 - 公众认证(2)
会计服务(1) 等问题是当我转到节点然后标记a为空我不知道为什么但HTMLagility包没有得到这些标签。检查看它说div只包含最注释的breakline标签而不是标签,当我们在页面源中看到它时,它就在那里
doc.DocumentNode.SelectNodes("//tr/td/table/tr/td/div/div")[0].OuterHtml "<div style=\"font-size: 12px;line-height: 16px;\"><!--<br />-->\r\n<!--<br />-->\r\n</div>"
这是div的开头 请注意,我只包含HTML中的2个标签
<div style="float: left; width: 305px;">
<h5 style="margin: 0px; margin-bottom: 5px; border-bottom: 1px solid #cccccc; padding-bottom: 5px; font-size: 12px;">Categories Starting with letter 'a'</h5>
<div style="font-size: 12px;line-height: 16px;">
<!--<br />-->
<!--<br />-->
<a class="listingName" href="/kitchener/accredited-business-directory/accountants">Accountants (11)</a><br />
<a class="listingName" href="/kitchener/accredited-business-directory/accountants-certified-public">Accountants - Certified Public (2)</a><br />
</div>
</div>
我如何获取数据
即使推出也没有透露链接
foreach (var test in doc.DocumentNode.SelectNodes("//a[@href]"))
{ MessageBox.Show(test.InnerText+"\n"+test.InnerHtml); }
答案 0 :(得分:2)
使用以下示例对我的工作正常:
HtmlWeb web = new HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = web.Load("http://www.bbb.org/kitchener/accredited-business-directory?letter=a");
foreach (var link in doc.DocumentNode.SelectNodes("//a[@href]"))
{
Console.WriteLine(link.InnerText);
}
输出(缩短):
BBB
Home
Accredited Business Directory
Accountants (11)
Accountants - Certified Public (2)
Accounting Services (1)
Advertising - Direct Mail (3)
Advertising Agencies & Counselors (3)
Advertising Specialties (3)
...