从网页中获取一些数据

时间:2011-08-27 17:27:50

标签: c# web-scraping

我使用了this tutorial to fetch all the content of some webpage via c# code

我现在想要将以下文本模式中装饰的所有字符串聚集到IEnumerable集合中:(即MY-TEXT)

data-address=" MY-TEXT "></

我该怎么做? 我尝试使用“string.split()”,但却遇到了许多“白噪声”。

有什么想法吗?

3 个答案:

答案 0 :(得分:4)

更好的解决方案是使用HtmlAgilityPack并让它为您处理解析/抓取。这是一个例子:

var web = new HtmlWeb();
var doc = web.Load("http://www.stackoverflow.com");

var nodes = doc.DocumentNode.SelectNodes("//[@data-address]");

foreach (var node in nodes)
{
    Console.WriteLine(node.Attributes["data-address"].Value);
}

这将获取stackoverflow.com,找到具有data-address属性的所有元素,然后打印该属性的值。

答案 1 :(得分:0)

如果页面格式正确,我会将内容加载到XDocument中并使用LINQ to XML进行查询。

答案 2 :(得分:0)

@alexn是对的。虽然有一个小小的修正:

  var nodes = doc.DocumentNode.SelectNodes("//*[@data-address]");

添加了*