$IE = new-object -com "InternetExplorer.Application"$IE.Visible = $true$IE.Navigate( "http://www.reddit.com" )While ($IE.Busy) { Sleep 1}$links = $IE.document.getElementsByTagname("a")$links | foreach { write-host $_.href}@H_502_2@此脚本正常工作,直到我用本地Intranet站点替换URL.它遵循正常的URL方案(http://internaldomain.com/etc),但它被识别为Intranet站点.一旦我试图在Intranet区域中刮取页面,$IE.document值突然变为NulL并且脚本失败. @H_502_2@我猜它与该区域的一些模糊设置有关……我不确定.我在网上找到了一些建议,比如将它添加到您信任的网站,但这没有用.这是我第一次将Powershell用于Web自动化,因此任何帮助或见解都将受到赞赏.解决方法 也许解决方案在这里: http://blogs.msdn.com/b/ieinternals/archive/2011/08/03/internet-explorer-automation-protected-mode-lcie-default-integrity-level-medium.aspx @H_502_2@它解释了不同级别的标签,即.您必须使用“中选项卡”在本地区域中导航. @H_502_2@基本上,保持IE设置和使用脚本的最佳方法是创建一个注册表项,如上面的链接所述.
windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\InternetExplorer.ApplicationMedium][HKEY_CLASSES_ROOT\InternetExplorer.ApplicationMedium\CLSID] @="{D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E}"@H_502_2@在您的脚本中,使用这个新的com对象:
$IE = new-object -Com InternetExplorer.ApplicationMedium...总结
以上是内存溢出为你收集整理的Powershell Web Page Automation在Internet上运行,而不是在Intranet上运行全部内容,希望文章能够帮你解决Powershell Web Page Automation在Internet上运行,而不是在Intranet上运行所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)