Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当源不包含URL时,如何使用HtmlAlityPack在页面上获取URL?_C#_Html_Html Agility Pack - Fatal编程技术网

C# 当源不包含URL时,如何使用HtmlAlityPack在页面上获取URL?

C# 当源不包含URL时,如何使用HtmlAlityPack在页面上获取URL?,c#,html,html-agility-pack,C#,Html,Html Agility Pack,我正在尝试从该页面中删除KB URL: 页面上有URL,例如: 如果您在Chrome中打开开发者工具,它会显示包含的数据如下所示: <div class="indent"> <a id="kb-link-142" href="https://support.microsoft.com/kb/2976978" target="_self">https://support.microsoft.com/kb/2976978</a> </div> f

我正在尝试从该页面中删除KB URL:

页面上有URL,例如:

如果您在Chrome中打开开发者工具,它会显示包含的数据如下所示:

<div class="indent">
<a id="kb-link-142" href="https://support.microsoft.com/kb/2976978" target="_self">https://support.microsoft.com/kb/2976978</a>
</div>
foreach(HtmlNode link in doc.DocumentNode.SelectNodes("//a[@href]"))
{
   list.Add(link.GetAttributeValue("href", string.Empty));
}
但我遇到的问题是,当我下载HTMLSource时,内容会发生变化。我的意思是,即使开发人员工具在页面上显示了上述可用的HTML,但如果右键单击页面并选择查看源代码,则此时显示的HTML是完全不同的,并且不包含呈现页面显示的任何URL

我的理论是,有一种文件引用,HTML将文件加载到某个地方,该文件包含所呈现页面的详细信息。 既然源代码似乎不包含这些URL,那么如何使用HTMLAgilityPack获取呈现页面上的URL呢


此外,我意识到我的问题标题可能真的很混乱。如果有一个技术术语来描述这个页面正在做什么/它是如何工作的,请告诉我,我可以更新标题,使其更符合逻辑,其他人可以在将来搜索它。

好的,我现在看到问题了。此页面使用Angularjs指令和绑定,并且HREF正在加载页面加载后的内容。我们得到的页面在web浏览器代理进行任何解析/执行之前。这意味着任何DOM操作/javascript或ajax修改后页面上的更改都不会包含在HtmlDocument响应中。我认为实现这一点的方法是假装像web浏览器请求一样,让javascript和ajax完全执行,并按照建议获取内容。希望这有帮助

好吧,我现在明白问题了。此页面使用Angularjs指令和绑定,并且HREF正在加载页面加载后的内容。我们得到的页面在web浏览器代理进行任何解析/执行之前。这意味着任何DOM操作/javascript或ajax修改后页面上的更改都不会包含在HtmlDocument响应中。我认为实现这一点的方法是假装像web浏览器请求一样,让javascript和ajax完全执行,并按照建议获取内容。希望这有帮助