2010-04-19 186 views
2

我從描述問題本身開始。我正在尋找更好的解決方案,而不是一個問題。我有一個asp.net頁面,裏面有一大堆圖片和一個鏈接,每個圖片都是其下面鏈接的最新呈現。網頁渲染捕捉

我安排了一個蝙蝠腳本,它每小時運行一次以通過IECapt一個網頁渲染捕捉工具來獲取圖像。有一件事對這個實用程序感到惱火,因爲我有20個圖像需要花費很多時間,並且因爲它錯過了網站的實際屏幕截圖,所以很少有時間。

現在我想知道傳統編程是否可以完成這種渲染,對使用任何實用程序都不感興趣。我有興趣嘗試這個。該解決方案不一定需要基於C#的準備嘗試其他語言。因爲它給了我一個學習的機會。

謝謝。

+0

您是否打算從頭開始構建帶有Flash支持的無頭瀏覽器? – Quentin 2010-04-19 19:01:24

+0

以某種方式是,但不是那麼大的東西滿足我的先決條件。順便說一句,謝謝你告訴我代表我的情景的確切詞。 :-) – Chaitanya 2010-04-19 19:08:17

+0

不是從頭開始。我認爲他正在尋找一種方式來做到這一點,而不是重新發明輪子。 – 2010-08-06 13:21:21

回答

4

你或許應該看看MOZ-無頭截圖

你應該能夠嵌入你所需要的功能。

http://blog.mozilla.com/ted/2010/07/29/moz-headless-screenshot/

他還提供了一個示例嵌入名爲MOZ-無頭截屏客戶端應用程序。 這是一個簡單的命令行工具,它可以獲取URL,圖像大小和輸出文件名稱 並生成網頁的PNG屏幕截圖。

+0

+1這看起來很酷。 – 2010-08-10 18:33:45

+0

僅供參考,我移動了我的虛擬主機,因此我移動了Mercurial存儲庫:http://hg.mozilla.org/users/tmielczarek_mozilla.com/moz-headless-screenshot/ – 2012-05-11 13:03:20

0

對於你要做的事情,沒有簡單的解決方案。這是因爲渲染HTML,CSS和Flash實際上是一個非常複雜的過程。

如果您需要編寫相當多的代碼,可以使用Gecko引擎(支持firefox)或其他開源Web瀏覽器核心(即Dillo)將頁面渲染到自定義畫布上。然後將該畫布保存到文件中。但是,除非您實現對瀏覽器插件的支持,否則您不會以這種方式獲得Flash。你可以嘗試使用Gnash或者其他類似的東西。祝你好運。

我不知道已經這樣做的開源項目。這將是整潔,但:-)。如果你寫了一些東西,請把它推向世界;有一個「獲取此URL的屏幕截圖」工具真的很酷。

1

你應該看看瀏覽器截圖:

http://browsershots.org/

他們做你想做的很多不同的瀏覽器做什麼。它甚至是開源的。

0

一種方法是使用IRobotSoft web刮板。您可以設計一個機器人每小時訪問一次URL,並通過函數CapturePage(imagefile)將整個網頁捕獲爲圖像。

我不確定它是否會比IECapt更好。

0

我們已經非常成功地使用ACA WebThumb ActiveX控件(http://www.acasystems.com/en/web-thumb-activex/)來捕獲網絡服務器中的部分或整個網頁,然後將它們寫入文件,只需傳入網址即可。它的執行速度足以滿足我們的需求。

我對IECapt並不熟悉,但這可能是你可能想看看的東西。