在PowerShell 3.0中使用Invoke-Webrequest会产生Windows安全警告

18
在PowerShell 3.0中使用以下代码时
PS> $data = Invoke-Webrequest -Uri stackoverflow.com
PS> $data.ParsedHtml.getElementsByTagName("div")

我收到了这个警告:

Windows 安全警告 - 为了允许此网站向您提供个性化信息,您是否允许它在您的计算机上放置一个小文件(称为 cookie)?

我很想抑制此消息或添加处理 cookies 的代码,以便可以安排代码。
我已尝试在 IE 中信任该站点并允许 cookies,甚至降低了“用户帐户控制设置”,但没有成功。
2个回答

23
$data = Invoke-WebRequest http://stackoverflow.com -UseBasicParsing

看起来像是一个Internet Explorer提示框,这是因为在底层Invoke-WebRequest可能使用Internet Explorer解析DOM。当你使用-UseBasicParsing参数时,你指示PowerShell使用自己的解析器。由于某种原因,它似乎也隐藏了cookies提示。


2
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Eric Furspan
-UseBasicParsing将Web引擎更改为PowerShell引擎,因此您会获得不同的数据返回,包括像.images这样的空属性。 - az1d

3

如果您在Internet选项中放宽隐私设置,可以抑制此消息enter image description here

您还可以在脚本中为正在使用的站点添加每个站点的隐私选项,而不是允许所有cookie。

-UseBasicParsing相反,您将保留Internet Explorer提供的解析功能。(但安全性会降低)


1
对我没用...尝试允许所有内容,阻止所有内容,在用户和管理员模式下更改设置...有些网站会产生这些警告,而有些则不会。 - Jan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接