我试图解析网站 我需要在
中获取所有菜单元素string Url = "http://r-hockey.ru/";
var web = new HtmlWeb
{
AutoDetectEncoding = false,
OverrideEncoding = Encoding.GetEncoding(1251),
};
HtmlAgilityPack.HtmlDocument doc = web.Load(Url);
HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//td[@style='margin-left: 5px; vertical-align: top;'][@width='80%']");
if (nodes != null && nodes.Count == 1)
{
var menuList = nodes.First();
var list = menuList.ChildNodes.ToArray();
...
}
我无法将菜单元素添加到列表中。 但它们位于 menuList.Descendants()中。 如果我使用jquery,我会把它们当作孩子。
$("td[style='margin-left: 5px; vertical-align: top;'][width='80%']").children();
显然,我的HTML解析错了而且我不明白,为什么。请帮我。 我可以从 menuList.Descendants()获取菜单标签,但我需要按照正确的顺序在绿点和菜单数据之后存储大写文本。
答案 0 :(得分:0)
我刚试过你的代码,它运行正常。你在列表中得到了什么?
答案 1 :(得分:0)
我正在使用谷歌浏览器以及我在" Inspect"中看到的结构。与查看页面来源"中的不一样。 所以在我的文档中菜单实际上是 td 中 table 标记的子代。 在我修改之后,一切都按照预期工作:
_.uniqWith(list, _.isEqual);