如何在没有多余的情况下获取网站的内容?

时间:2017-03-07 02:56:51

标签: c#

我有一个包含网站内容的字符串,例如(概述,插入标记和内容)

$string = '<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
    <title>Some title
    </title>
  </head>
  <body>Navigation
    <br><div>CSS</div>
    <br><div>JavaScript</div>
    <br>Advertising
    <br><div>Content</div>
    <br>Navigation
    <br>Advertising
    <br>Inprint
    <br>
  </body>
</html>'

如何在没有多余内容的情况下获取内容?根据内容,我不是指“内容”这个词,而是指网站的真实内容。

例如,在论坛中,我希望论坛的条目没有导航,标签,广告。

我尝试了string s = Regex.Replace(string, "<.*?>", String.Empty);,这只是剥离标记,但没有获取内容。

网站上是否存在一些重复且可被利用的模式,以帮助我在没有混乱的情况下获取内容?

1 个答案:

答案 0 :(得分:0)

您可以使用HTML Agility Pack NuGet包。它非常灵活,您可以通过它实现您想要实现的目标。

以下是如何获取页面中所有超链接的示例:

HtmlDocument document2 = new HtmlDocument();  
document2.Load(@"C:\Temp\sample.txt")  
HtmlNode[] nodes = document2.DocumentNode.SelectNodes("//a").ToArray();  
foreach (HtmlNode item in nodes)  
{  
    Console.WriteLine(item.InnerHtml);  
}  

还有更多示例here