2015-10-01 79 views
0

有一个嵌有银光应用程序的网页,我想刮掉它。我想知道是否有C#,Java或Python支持silverlight的网页抓取解决方案或浏览器自动化解决方案(或任何技巧/黑客攻击)。在silverlight上刮网页4页

我目前正在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"/> 
... 

回答

0

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

另一种替代方法是在使用Scrapy,abotcrawler4j或任何其他类似技术导航到您需要的信息时,破解请求并保持会话存活。

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和Locating elements查看Getting started

+0

听起来很有希望,今天我会在Windows机器上试试它,或者有一种方法可以在osx中​​尝试这种方式吗? – gerosalesc

+0

很高兴帮助,我也更新了我的答案。 – ekostadinov

+0

不幸的是,这种技术并不适合程序应该运行的生产环境的要求,但很高兴知道它,再次感谢。 – gerosalesc