【发布时间】:2019-12-28 22:13:09
【问题描述】:
这对我来说有点奇怪。我有一个HtmlDocument,在解析时我得到:
System.InvalidOperationException: '集合已修改;枚举操作可能无法执行。'
让我感到奇怪的是,我没有遍历从我的代码返回的列表,我仍然收到此错误。
using (HttpClient client = new HttpClient())
{
using (HttpResponseMessage response = await client.GetAsync(url))
{
response.EnsureSuccessStatusCode(); // Throw if httpcode is an error
using (HttpContent content = response.Content)
{
string result = await content.ReadAsStringAsync();
var website = new HtmlDocument();
website.LoadHtml(result);
//Thread.Sleep(5000);
List<HtmlNode>topbar = website.DocumentNode.Descendants("div").FirstOrDefault(o => o.GetAttributeValue("class", "") == "valueofClass")
.Descendants("div").FirstOrDefault(o => o.GetAttributeValue("class", "") == "valueofClass").Elements("section").ToList();
//loop
}
}
}
如果我添加一个Sleep 代码似乎可以正常工作,这让我认为LoadHtml 仍在后台工作,或者我正在执行某种javascript,但我不是。
【问题讨论】:
标签: list http parsing collections html-agility-pack