网页抓银光4页

时间:2015-10-01 19:53:47

标签: silverlight selenium web-scraping silverlight-4.0

有一个嵌入了银灯应用程序的网页,我想抓一下。我想知道在C#,Java或Python中是否存在支持Silverlight的网络抓取解决方案或浏览器自动化解决方案(或任何技巧/黑客)。

我目前正在尝试silvernium,但这是一个相当过时的项目,似乎无法正常使用silverlight 4。

以下是页面中SL对象的一些html信息:

<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">

<param name="source" value="PATH/WebSilverlight.xap"/>
<param name="onerror" value="onSilverlightError"/>
<param name="background" value="white"/>
<param name="minRuntimeVersion" value="4.0.50524.0"/>
<param name="autoUpgrade" value="true"/>
<param name="windowless" value="true"/>
<param name="enableautozoom" value="true"/>
...

2 个答案:

答案 0 :(得分:1)

我已与Telerik testing framework成功合作

  

支持C#

中的silverlight的自动化解决方案

它是免费的,一旦你习惯了它 - 非常简单,因为丰富的API和跨浏览器的兼容性。也许最棘手的部分是最初配置测试。

简单示例:

Settings mySettings = new Settings();
mySettings.Web.DefaultBrowser = BrowserType.InternetExplorer;
Manager myManager = new Manager(mySettings);
myManager.Start();    
myManager.LaunchNewBrowser();

myManager.ActiveBrowser.NavigateTo("http://www.example.com");

Element mybtn = myManager.ActiveBrowser.Find.ByTagIndex("input", 3);
myManager.ActiveBrowser.Actions.Click(mybtn);

myManager.Dispose();

Windows Inspect tool是一个很好的补充。它允许您选择任何UI元素并在某些棘手的情况下查看元素的辅助功能数据。

更新

我搜索了一些有用的文档链接,这些链接是我过去使用过的。使用Silverlight UI Automation和Getting started查看Locating elements

答案 1 :(得分:0)

最后,我使用基于计算机视觉的技术SikuliX实施了一种解决方法,并从正常普通用户那样获取Silverlight Web应用程序中的打印PDF来获取信息。这是一个script,展示了如何与Selenium一起运行。

另一种方法是在使用Scrapyabotcrawler4j或任何其他类似技术导航到您需要的信息时,破解请求并保持会话处于活动状态。