2015-10-01 102 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