民间, 我正在尝试使用C#从网页中提取数据..目前我使用了来自WebReponse的Stream,并将其解析为一个大字符串。这是漫长而痛苦的。有人知道从网页中提取数据的更好方法吗?我说WINHTTP但不适合c#..
答案 0 :(得分:5)
要从网页下载数据,更容易使用WebClient:
string data;
using (var client = new WebClient())
{
data = client.DownloadString("http://www.google.com");
}
要解析下载的数据,只要它是HTML,您就可以使用优秀的Html Agility Pack库。
这是一个从给定页面中提取所有链接的完整示例:
class Program
{
static void Main(string[] args)
{
using (var client = new WebClient())
{
string data = client.DownloadString("http://www.google.com");
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(data);
var nodes = doc.DocumentNode.SelectNodes("//a[@href]");
foreach(HtmlNode link in nodes)
{
HtmlAttribute att = link.Attributes["href"];
Console.WriteLine(att.Value);
}
}
}
}
答案 1 :(得分:0)
如果网页是有效的XHTML,您可以快速轻松地将其读入XPathDocument和xpath直接获取所需的数据。如果它不是有效的XHTML,我确信你可以使用一些HTML解析器。
找到一个类似的问题,答案应该有所帮助。 Looking for C# HTML parser