我试图抓一个随机网站输入标签。
因此,我需要以这样的方式编写它,以便它可以与大多数网站一起使用。
目前我有
void wc_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
HtmlAgilityPack.HtmlDocument dom = new HtmlAgilityPack.HtmlDocument();
dom.LoadHtml(e.Result);
var node = dom.DocumentNode.Element("html");
var inputs = node.ChildNodes["body"].Descendants("input");
但这不起作用。
节点返回我想要的数据,但输入总是为空。
当我node.ChildNodes["body"].Descendants().ToList();
时,我会看到名为" input
"的条目。
我错过了什么吗?
答案 0 :(得分:1)
您的代码很好,它只是您验证错误的方式。屏幕截图中的所有null
值都不表示IEnumerable<T>
为空,您可以尝试在观察窗口中调用inputs.ToArray()
或inputs.ToList()
来验证结果
请记住,IEnumerable<T>
在必要时延迟加载项目,例如,直到您进行迭代,致电ToList()
/ ToArray()
等。