Mik*_*e B 9 c# string html-parsing
我正在编写一个抓取一组网页的应用程序.我不想获取页面的整个源代码,而是将所有内容存储起来并存储,并能够将页面作为纯文本存储在数据库中.内容将在其他应用程序中使用,而不是由用户阅读,因此不需要它完全是人类可读的.
起初,我正在考虑使用正则表达式,但我无法控制网页的有效性,并且很有可能没有正则表达式会给我内容.
如果我在字符串中有源代码,我怎样才能将该源代码串转换为C#中的内容?
Mar*_*ell 20
它不是100%清楚你想要什么,但我假设你想要文本减去加价; 所以:
string html;
// obtain some arbitrary html....
using (var client = new WebClient()) {
html = client.DownloadString("http://stackoverflow.com/questions/2038104");
}
// use the html agility pack: http://www.codeplex.com/htmlagilitypack
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);
StringBuilder sb = new StringBuilder();
foreach (HtmlTextNode node in doc.DocumentNode.SelectNodes("//text()")) {
sb.AppendLine(node.Text);
}
string final = sb.ToString();
Run Code Online (Sandbox Code Playgroud)
拜托,请不要不解析HTML自己!您不能仅使用标准正则表达式来解析HTML - 这是不可能的.
那里有大量的免费图书馆.HTML Agility Pack是.NET世界上最好的免费软件之一.
HTML Agility Pack也支持格式错误的文档,这是正则表达式或其他基本解析(如XML)几乎永远不会做的事情.