HTML Agility Pack:DocumentNode.Descendants()返回空值

时间:2013-06-12 23:22:25

标签: c# html windows-8 html-agility-pack screen-scraping

我正在使用HTML Agility Pack来抓取我的Windows应用商店应用的网站。 Windows 8商店应用程序的版本不支持XPath,也没有selectNodes函数,但它支持lambda表达式来查找所需的值。

在广泛搜索网页后,我看到的唯一解决方案(一遍又一遍)是使用DocumentNode.Descendants()来获取要在其中搜索的元素列表。但是,对我来说,DocumentNode.Descendants()始终返回空值。无论是否将参数传递给函数,都会发生这种情况。

我现在回复了一个回复。我可以看到HtmlDocument对象里面的页面的html。

代码段:

HttpContent loginContent = new FormUrlEncodedContent(new[]
{
         new KeyValuePair<string, string>("name", username),
         new KeyValuePair<string, string>("password", password)
}

HttpResponseMessage response = await httpClient.GetAsync(httpClient.BaseAddress); //Gets the cookie

response = await httpClient.PostAsync(loginPageAddress, loginContent); //Logs in
HtmlDocument doc = new HtmlDocument();
doc.Load(new StringReader(await response.Content.ReadAsStringAsync())); // Loads doc, can see html for the page in doc.text attribute now


HtmlNode pointsNode = doc.DocumentNode.Descendants("div").Where(o => o.Attributes["class"].Value == "availableNumber").FirstOrDefault(); // fails because Descendants returns null values

从我的即时窗口调试:

doc.DocumentNode.Descendants("div")
{HtmlAgilityPack.HtmlNode.Descendants}
    name: null
    System.Collections.Generic.IEnumerator<HtmlAgilityPack.HtmlNode>.Current: null
    System.Collections.IEnumerator.Current: null

任何帮助解决此问题的人都将不胜感激!谢谢大家。

0 个答案:

没有答案