作者os653 (allstar)
看板Python
标题[心得] 控制带框架的 IE 浏览器存取被拒
时间Thu Oct 29 23:49:57 2009
其实我也不确定这做法正不正确,不过至少现在会动了
之前写了一个程式,用 python 控制 IE 浏览器处理资料,目标网站有使用框架
之前都能正常执行,可是在某次目标网站更新後,出现
pywintypes.com_error: (-2147352567, '\xb5o\xa5\xcd\xa8\xd2\xa5~\xaa\xac\xaap
\xa1C', (0, None, u'\u5b58\u53d6\u88ab\u62d2\u3002\r\n', u'C:\\WINDOWS\\syst
em32\\mshtml.hlp', 0, -2147024891), None)
这个错误,确认为存取被拒的讯息
侦错得知是 ie.Document.frames[0].Document 这行出了问题
ie.Document.frames[0] 没问题,但无法访问 frame 的 Document
Google 得知应该是安全性方面的问题,似乎是跨 frame 访问有安全性上的限制
通过 IInternetSecurityManager::GetSecurityId 这个函数判断站点是否在同一域
可以自己实现一个 Internet 安全管理器来覆盖默认的安全设置
问题是找不到完整的范例用 python 来实现,而且我怕把系统弄坏了复原不了
最後解决方法
更改 IE 的安全性,将目标网站加入信任的网站中,问题就消失了
结果一行 code 都没改 orz ...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.170.129.191
1F:推 huge:真是好心得..我也觉得有个sample会比较快 XD 10/30 00:11