【问题标题】:Scraping Data from Silverlight Control within Browser从浏览器中的 Silverlight 控件中抓取数据
【发布时间】:2018-05-14 11:32:20
【问题描述】:

我一直在使用 Excel VBA 和 WPF 应用程序从各个网站抓取数据,一切顺利。但是现在我遇到了一些我无法克服的事情。

网站正在 Silverlight 控件中显示其数据:

<OBJECT width="100%" height=400 id=rnSilverlightGrid 
data="data:application/x-oleobject;base64,QfXq3+...blah blah thousands of characters...AAAA==" 
type=application/x-silverlight-2
<a href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;"></a>
</OBJECT>

(省略了我认为没有帮助的内容。)

getElementById("rnSilverlightGrid") 不返回任何内容,但我可以使用ie.document.all.tags("Object").Item(0) 获取对象的句柄,但无法进一步进入对象以获取数据。

谁能告诉我现在如何从这个 Silverlight 网格中获取数据?这目前在 Excel VBA 中编码,但如有必要,我可以切换到 WPF 并使用 WebBrowser 控件。如果可以避免,我宁愿不进行切换(无论如何也不知道如何进行切换)。我调查了怀特(似乎是死胡同),并看到了其他关于此的问题没有得到解答。

提前致谢!

【问题讨论】:

    标签: silverlight excel screen-scraping vba


    【解决方案1】:

    Silverlight 能够使某些对象可用于 JavaScript 调用,以便 JavaScript 开发人员可以从外部影响 Silverlight 应用程序。

    这些被称为“可编写脚本的对象”。

    进一步阅读:https://msdn.microsoft.com/en-us/library/cc645085(v=vs.95).aspx

    我的理解是此功能在 SL4 和 SL5 中可用。

    【讨论】:

    • 谢谢格伦,但除非你能告诉我更多,否则我无法使用你的答案。在 excel VBA 中,我在桌面上的 Web 浏览器中有一个 Silverlight 控件的句柄(IHTMLElement),我无法控制它的版本(我相信是 3)。我不是在编写 SL 控件,而是在尝试读取它正在显示的数据。
    • 如果 SL 插件的创建者没有为您提供功能,那么您将无法访问它们。对不起。
    • 你的意思是javascript函数吗?我相信我可以通过 DOM 将 javascript 注入到控件中,例如 hItem.OnClick = "alert('hello there');"
    • 再次感谢格伦。我决定接受你的回答,SL3 基本上是不可能的。
    猜你喜欢
    • 2011-03-19
    • 1970-01-01
    • 1970-01-01
    • 2012-11-03
    • 1970-01-01
    • 2014-05-23
    • 1970-01-01
    • 2018-08-11
    相关资源
    最近更新 更多