[心得] 控制帶框架的 IE 瀏覽器存取被拒
其實我也不確定這做法正不正確,不過至少現在會動了
之前寫了一個程式,用 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
推
10/30 00:11, , 1F
10/30 00:11, 1F
Python 近期熱門文章
PTT數位生活區 即時熱門文章