我已经使用this tutorial to fetch all the content of some webpage via c# code。从网页获取一些数据
我现在要收集到IEnumerable集合所有这些都在下面的文本模式饰字符串:(即MY-TEXT)
data-address=" MY-TEXT "></
我怎么能这样做? 我尝试使用“string.split()”,但得到了许多“白色噪音”。
有什么想法?
我已经使用this tutorial to fetch all the content of some webpage via c# code。从网页获取一些数据
我现在要收集到IEnumerable集合所有这些都在下面的文本模式饰字符串:(即MY-TEXT)
data-address=" MY-TEXT "></
我怎么能这样做? 我尝试使用“string.split()”,但得到了许多“白色噪音”。
有什么想法?
更好的解决方案是使用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)我得到以下错误:“表达式必须评估到一个节点集”。什么地方出了错? 2)你是如何得到这个开源DLL的?只是为了让我下次知道。 –
@alexn是对的。小幅回调,但:
var nodes = doc.DocumentNode.SelectNodes("//*[@data-address]");
加*
什么样的网页是什么?它是HTML(它没有任何'data-address'属性AFAIK)?还是XML? – svick