可能重复:
Parsing web pages
我试图在C#中解析网页的内容。这是我使用的代码:
WebRequest request = WebRequest.Create("URL");
WebResponse response = request.GetResponse();
Stream data = response.GetResponseStream();
string html = String.Empty;
using (StreamReader sr = new StreamReader(data))
{
html = sr.ReadToEnd();
}
但问题是我获得了html包含的所有数据。
您对如何以“干净”方式获取有用数据有任何建议,或者我必须构建自己的解析器吗?例如:包含标题和与之相关的文本的帖子,类似于博客的格式。
答案 0 :(得分:5)
如果你确实试图从网页上解析博客帖子不这样做,甚至不要考虑使用HTML Agility Pack。
相反,您应该使用已构建到.Net框架中的SyndicationFeed及相关类(自v3.5起)。这些是为消费和拆分RSS提供量身定制的。
答案 1 :(得分:4)
只需使用Html Agility Pack即可。它太强大了!
您可以在互联网上找到许多教程,例如http://runtingsproper.blogspot.fr/2009/09/htmlagilitypack-article-series.html
答案 2 :(得分:1)
使用Regex
。要解析两个标签之间的数据(我假设你想做),你可以做一些这样的事情:
string match = Regex.Match(data, string.Format("<a>(?<inbetween>.+?)</a>")).Groups["inbetween"].Value;
使用Regex
,与敏捷包不同,不需要外部依赖,这对于便携式独立应用程序非常有用。