我使用了this tutorial to fetch all the content of some webpage via c# code。
我现在想要将以下文本模式中装饰的所有字符串聚集到IEnumerable集合中:(即MY-TEXT)
data-address=" MY-TEXT "></
我该怎么做? 我尝试使用“string.split()”,但却遇到了许多“白噪声”。
有什么想法吗?
答案 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]");
添加了*