我有以下的链接,当我通过Chrome打开该链接并右键点击页面,然后选择“另存为”将页面保存为HTML文件(c:\temp\cu2.html)时。
保存后,我可以使用HTML编辑器(比如VS2015)打开这个cu2.html文件,然后可以看到文件内部有一个标签,如下所示。
然而,如果我使用IE11(而不是Chrome)打开链接,然后将同一个页面保存为HTML文件,我根本找不到这个标签。实际上,从IE11保存的HTML文件与我可以用下面的PowerShell脚本提取的内容相同。
#Requires -version 4.0
$url = 'https://support.microsoft.com/en-us/help/4052574/cumulative-update-2-for-sql-server-2017';
$wr = Invoke-WebRequest $url;
$wr.RawContent.contains('<table') # returns false
$wr.RawContent | out-file -FilePath c:\temp\cu2_ps.html -Force; #same as the file saved from the webpage to html file in IE
我的问题是:
为什么在Chrome中保存的网页(以HTML文件形式)与IE中不同?
我如何使用PowerShell(或C#)将这样的网页保存为HTML文件(与Chrome中保存的文件相同)?
Browser
进行自动化,例如Chrome,您可以依靠使用CefSharp。我已经在Windows Forms中使用过它。这意味着您也可以在PowerShell中使用它。在最坏的情况下,您可以编写一个使用CefSharp的C#程序来为您完成此操作。但是,在不允许使用IE的环境中,我认为使用CefSharp有很多风险。我不是在谈论CefSharp,实际上所有其他第三方浏览器都是如此。 - Reza Aghaei$ie.Stop()
和$ie.Quit()
。这是一个非常重要的修改,请不要错过它。 - Reza Aghaei