2010-10-15 58 views
6

您是否認爲技術上可以通過編程的方式對網站進行掃描?技術上可以通過編程獲取網站截圖嗎?

我想製作一個預定的Python任務,它抓取網站列表並獲取它們的主頁屏幕截圖。

您認爲技術上可行嗎?或者您認識提供類似服務的第三方網站(Input: url --> Output: screenshot)?

有什麼建議嗎?

+6

您是否在尋找http://www.browsershots.org提供的功能?源代碼http://code.google.com/p/browsershots/ – birryree 2010-10-15 06:57:29

+1

@birryree你應該回答,而不是評論:)我認爲這是一個很好的答案 – samy 2010-10-15 07:00:58

+1

我同意samy - 它回答了所有問題! :) – 2010-10-15 07:02:11

回答

1

如何PyGTK的

import gtk.gdk 

w = gtk.gdk.get_default_root_window() 
sz = w.get_size() 
print "The size of the window is %d x %d" % sz 
pb = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB,False,8,sz[0],sz[1]) 
pb = pb.get_from_drawable(w,w.get_colormap(),0,0,0,0,sz[0],sz[1]) 
if (pb != None): 
    pb.save("screenshot.png","png") 
    print "Screenshot saved to screenshot.png." 
else: 
    print "Unable to get the screenshot." 
+0

ImageMagick只是一個通用的圖像處理函數庫。這就像回答這個問題,「我如何在C#中實現FFT?」你回答:「哦,你可以在數學課上用一些東西」。 – Brad 2010-10-15 13:29:19

+0

ImageMagick以何種方式將HTML呈現到圖像中? – 2010-10-15 13:29:47

+1

謝謝@David,非常感謝。 – Fenton 2010-12-02 12:26:45

0

這當然是技術上是可行的。

您可能需要將HTML直接渲染到圖像文件上(或者更有可能的情況是,將內容位圖寫入圖像文件後寫入完成)。

我不知道有任何圖書館爲你做這件事(除了一個修改的WebKit,也許)...但肯定有網站這樣做。

當然,這比在計算機上的瀏覽器中打開頁面並以編程方式拍攝屏幕截圖要複雜一些,但如果您不關心特定瀏覽器的結果,結果可能會更好。

3

您可以檢查webkit2png(僅限OS X)和khtml2png(Linux)以及post(使用PyQt和WebKit)。

+0

webkit2png也適用於GNU/Linux,請參閱這篇文章:http://gfdsa.gfdsa.org/2012/08/15/making-web-pages-screenshots-with-webkit2png-flash-included/ – 2014-05-25 18:35:09

1

我用硒和PhantomJS。

from selenium import webdriver 
driver = webdriver.PhantomJS() 
driver.get("http://anyurl.com") 
driver.save_screenshot("/path/to/folder") 

請務必將PhantomJS可執行文件放在您的$ PATH中。

相關問題