我遇到通过htmlagilitypack从html表获取信息的问题。
html(www.ldoceonline.com/search/?q=arg)看起来像这样
<body>
<div>
<div>
<div>
<div>
<table>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td><td><a href><span/></a><span/><span/><span><a/><a/></span></td> //I want to get information from here, from a href and spans.
<td>...
</tr>
</table>
...
我的c#代码。
var url = String.Format(urlToTheSite);
HtmlDocument doc = new HtmlWeb().LoadFromWebAsync(url).Result;
HtmlNodeCollection tablesHtmlNodeCollection = doc.DocumentNode.. //stack in here
我有一个问题,因为在我发现的文章中我只看到这样的答案:
var url = String.Format(urlToTheSite);
HtmlDocument doc = new HtmlWeb().Load();
HtmlNodeCollection tablesHtmlNodeCollection = doc.DocumentNode.SelectNodes(nodeToSelect);
但我没有方法Load for HtmlWeb我只有这些:https://imgur.com/XGUyRbh 我也没有HtmlNodeCollection中的DocumentNode方法SelectNodes:https://imgur.com/X1KnZlt
我尝试这样的事情,但我只得到4个结果#comment/#text/html/text,我不知道如何深入。
HtmlDocument doc = await new HtmlWeb().LoadFromWebAsync(urlToTheSite);
var tablesHtmlNodeCollection = doc.DocumentNode.ChildNodes.ToList().Where(x => x.OriginalName.Equals("html")).ToList();//this one result one result
感谢您的帮助,如果这取决于我为Window8.1 / WP8.1编写了一个通用应用程序。
答案 0 :(得分:0)
&#34; ...如果这取决于我为Window8.1 / WP8.1编写了一个通用应用程序。&#34;
是的,这取决于平台。适用于通用应用的HtmlAgilityPack(HAP)没有SelectNodes()
或SelectSingleNode()
,因为两者都需要xpath,而这个平台并不支持。在这种情况下,您可以仅依赖于HAP的LINQ API,例如,获取页面中的所有表,您可以执行以下操作(返回4结果):
var tables = doc.DocumentNode.Descendants("table").ToList();