C#我如何检索这些信息?
在HTML页面上,我有类似的内容C#我如何检索这些信息?,c#,html,winforms,C#,Html,Winforms,在HTML页面上,我有类似的内容 <table class="information"> <tbody> <tr> <td class="name">Name:</td> <td><a href="example.com">John</a></td> </tr> <tr> <td>...</td> <td>...</td&g
<table class="information">
<tbody>
<tr>
<td class="name">Name:</td>
<td><a href="example.com">John</a></td>
</tr>
<tr>
<td>...</td>
<td>...</td>
</tr>
....
</tbody>
</table>
签出-使用html源代码是一个免费且非常好的库。签出-使用html源代码是一个免费且非常好的库
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(html);
var table = doc.DocumentNode.SelectSingleNode("//table[@class='information']");
var td = table.SelectSingleNode("//td[@class='name']");
Console.WriteLine(td.InnerText);
或
或
FTW+1用于HTML敏捷性包。在下面,它使用XPath查询HTML文档。FTW+1用于HTML敏捷性包。下面它使用XPath查询HTML文档。HtmlAgilityPack很酷,但我更喜欢ScrapySharp()。它是建立在HtmlAgilityPack之上的,但也提供CSS选择器支持。如何安装它们?如何使用它们?从上面的页面下载二进制文件。将它们添加到引用中。使用:查看文档。我找不到任何scrapysharp文档?HtmlAgilityPack很酷,但我更喜欢scrapysharp()。它是建立在HtmlAgilityPack之上的,但也提供CSS选择器支持。如何安装它们?如何使用它们?从上面的页面下载二进制文件。将它们添加到引用中。使用:查看文档。我找不到任何可用于scrapysharp的文档?您能帮我安装吗?当我解压时,我有这些文件夹。。Net20、Net40、Net40客户端、Net45、sl3 wp、sl4、sl4-windowsphone71、sl5和winrt45。。。。使用哪一个将其添加为引用?@Alkis选择要引用的平台。就这些。你能帮我安装吗?当我解压时,我有这些文件夹。。Net20、Net40、Net40客户端、Net45、sl3 wp、sl4、sl4-windowsphone71、sl5和winrt45。。。。使用哪一个将其添加为引用?@Alkis选择要引用的平台。就这些。罗莎娜这正是我需要的,但有个问题。。您的答案将给出结果“Name:”,但我希望结果是“John”。。。我试图修改它并编写td.NextSibling.InnerText以获取下一个元素的内部文本,但出现了错误,然后尝试这种方法-首先使用与上面相同的方法查找此表控件。然后遍历控件,并查找标记中只有一个标记作为示例。所以你可以很容易地得到数据。罗莎娜这正是我需要的,但有一个问题。。您的答案将给出结果“Name:”,但我希望结果是“John”。。。我试图修改它并编写td.NextSibling.InnerText以获取下一个元素的内部文本,但出现了错误,然后尝试这种方法-首先使用与上面相同的方法查找此表控件。然后遍历控件,并查找标记中只有一个标记作为示例。因此,您可以轻松获取数据。
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(html);
var table = doc.DocumentNode.SelectSingleNode("//table[@class='information']");
var td = table.SelectSingleNode("//td[@class='name']");
Console.WriteLine(td.InnerText);
var text = doc.DocumentNode.Descendants("td")
.First(td => td.Attributes["class"] != null && td.Attributes["class"].Value == "name")
.InnerText;
HtmlElementCollection tData = wb.Document.GetElementsByTagName("td");
foreach (HtmlElement td in tData)
{
string name = "";
if (td.GetAttribute("classname") == "name")
{
name = td.InnerText;
}
}