C# 为什么Html.AgilityPack会丢失一些图像标记?

C# 为什么Html.AgilityPack会丢失一些图像标记?,c#,.net,html-agility-pack,C#,.net,Html Agility Pack,我正在使用html敏捷包,并做了类似的事情 HtmlWeb web = new HtmlWeb(); HtmlDocument doc = web.Load("http://test.com"); int count = doc.DocumentNode.SelectNodes("//img").Count(); 我得到了38 当我转到该页面并执行$('img').size()时我得到43返回。为什么会有区别?“//img”只是在寻找根目录吗 这就是为什么我可能会错过一些 “//img”只

我正在使用html敏捷包,并做了类似的事情

HtmlWeb web = new HtmlWeb();
 HtmlDocument doc = web.Load("http://test.com");

int count = doc.DocumentNode.SelectNodes("//img").Count();
我得到了
38

当我转到该页面并执行
$('img').size()时我得到
43
返回。为什么会有区别?
“//img”
只是在寻找根目录吗

这就是为什么我可能会错过一些

“//img”只是在寻找 根的

不,它正在查找子节点(当前节点的子节点、孙子节点等)。xpath表达式从文档中选择所有图像

当我转到该页面并执行$('img').size()时;我回来了

我的假设-一些图像是通过javascript动态创建的。HtmlAgilityPack无法处理此问题

顺便说一下,对于
http://test.com
我使用AgilityPack(
doc.DocumentNode.SelectNodes(“//img”).Count()
)获得了87个图像节点,从Chome控制台获得了87个图像节点(
$('img').size()


EDIT
HtmlWeb.Load()
方法内部使用类获取数据。AgilityPack的作用是正确解析数据。一些web资源完全可能根据一些请求头(如
User-Agent
和其他请求头)为同一URI返回不同的内容。例如,
User-Agent
标题可以通过
HtmlWeb.UserAgent
属性设置。

ya test.come不是我正在使用的页面(只是要填写的内容)。嗯,如果是这样的话,我不确定他们会怎么做。实际上,通过谷歌浏览器查看源代码,我得到了48张图片,但似乎至少有10张被注释掉了。因此,可能它们被htmlAgilityPack忽略了(这会给我一个38的计数)。仍然不确定为什么jquery在查找43时会有差异,那么忽略一些注释掉的和其他注释掉的是什么呢?@chobo2,尝试关闭javascript。我认为图像的数量应该是相同的。还对我的答案进行了编辑,对其进行了一个可能的解释。