我一直在玩弄一個問題是一個服務,它需要我的服務器產生給定網址的網頁截圖。問題是我沒有任何想法,我會如何做到這一點。我主要使用LAMP軟件堆棧,因此所提供的答案是最有幫助的。基本的要求是:給定一個url,服務器需要在該url產生一個渲染網頁的圖像文件。提前致謝!服務器生成的網頁截圖?
回答
實際上,您需要讓服務器啓動相關Web瀏覽器,並使用相應的庫對應用程序進行截圖。 Apache不會爲你呈現頁面,所以你必須有軟件。
右圖像。我有幾個想法是實際上從桌面環境自動收集屏幕截圖,或者以某種方式使用壁虎引擎來構建可以從中創建圖像的頁面的渲染版本。嗯.... – 2008-09-23 04:35:00
是的,那是需要的。我在asp.net中這樣做,實際上我創建了一個可在.Net框架類庫中生成的WebBrowser對象來生成屏幕截圖。
您可能還想看看webkit,它被稱爲更易於嵌入(用於Adobe AIR,Google for Chrome,Apple for iPhone ...),然後是其他渲染引擎。這可能需要更多的工作來設置,但它比一些啓動了瀏覽器並截圖的黑客更加穩定。
IF您的服務器是的Mac,那麼我建議webkit2png,這是一個很短的Python程序,充分利用WebKit的Objective-C的API來呈現一個URL。就我個人而言,我將它與WWW::Mechanize結合使用來瀏覽我的開發網站並製作每個頁面的屏幕截圖 - 對於測試功能,顯示客戶端和保持屏幕截圖處於最新狀態非常有用。由此產生的截圖是完美的,但有時很長,滾動頁面。
IF您的服務器具有非裸機安裝的Linux發行版與KDE,那麼你可以嘗試khtml2png。我自己沒有嘗試過,但在webkit2png頁面上看到它提到。
我使用http://webthumb.bluga.net服務來生成縮略圖。強大,功能強大,易於使用,價格合理。我有一個使用這項服務的高流量生產網站,它工作得很好。鑑於創建一個強大的網頁截圖服務的困難,很高興有其他人做了艱苦的工作。
Java的非免費解決方案是WebRenderer。有趣的功能:它可以在渲染時模擬Safari,IE或Firefox瀏覽器。他們有桌面版本和無頭服務器版本。他們還有示例代碼,演示如何呈現網頁的屏幕截圖。
虛擬幀緩存的X服務器
我寧願建議XVFB(虛擬幀緩存的X服務器)可以採取無頭服務器的截屏的最佳解決方案。虛擬幀緩衝區X服務器xvfb提供了一個X服務器,可以在沒有顯示硬件且沒有物理輸入設備的計算機上運行。 我在我的服務器上使用它來測試URL並截取它。我們正在使用Ubuntu & XVFB + FIREFOX。它工作正常。根據你的需要修改。看看這些文章。這可能會對你有用。
http://www.semicomplete.com/blog/geekery/xvfb-firefox.html
- 1. 網站截圖縮略圖生成器
- 2. 從Tomcat服務的網頁生成PDF
- 3. 用於生產服務器服務器的扭曲網頁
- 4. 使用沒有網絡服務器的rails生成HTML頁面
- 5. 網頁表單生成器(生成器)
- 6. 網格生成服務器/客戶端?
- 7. 服務器生成的懸停圖像?
- 8. JavaFX的服務器端圖像生成
- 9. 網絡服務器生成嚴重格式化的服務.wsdl
- 10. 將生成的畫布圖像發送到網站服務器?
- 11. 找出與網頁服務器生成的html頁面相關的類文件
- 12. 生成Flex圖形服務器端
- 13. 以頁面的截圖在InDesign擴展生成器
- 14. 郵政網頁圖像服務器
- 15. 像LaTeX網頁生成器
- 16. 網站截圖(HTML5帆布/服務)
- 17. 從網絡播放器保存屏幕截圖到服務器
- 18. 生成服務圖層類
- 19. 選擇生成服務器
- 20. 服務器端PDF生成
- 21. Phantomjs - 截取網頁的屏幕截圖
- 22. 長網頁的Android截圖
- 23. 生成截圖並將其發送到服務器(不使用FileReference.upload)
- 24. 在無頭服務器上渲染HTML以生成屏幕截圖
- 25. VB.net網頁服務器
- 26. 網站上的服務器端隨機數生成器
- 27. jQuery不能'連接'與我的服務器生成的網頁上的元素
- 28. 如何生成檢查進程或服務狀態的網頁?
- 29. Python生成器截止
- 30. 用JavaScript截取網頁截圖?
不用擔心traumaPony,我的web服務無關與彈出該鼠標懸停在鏈接,當你想讀的文章:) – 2008-09-23 04:37:42