代码之家  ›  专栏  ›  技术社区  ›  systempuntoout

从技术上讲,是否有可能以编程方式拍摄网站的截图?

  •  6
  • systempuntoout  · 技术社区  · 14 年前

    我想制定一个计划的Python任务,抓取网站的主页截图列表。

    你认为技术上可行吗?或者你知道第三方网站提供这样的服务吗( Input: url --> Output: screenshot ) ?

    有什么建议吗?

    5 回复  |  直到 14 年前
        1
  •  15
  •   wkl    14 年前

    你在寻找什么样的功能吗 browsershots.org 提供?

    Google Code/Browsershots .

        2
  •  3
  •   Etienne    14 年前

    你可以查一下 webkit2png khtml2png (Linux)还有这个 post

        3
  •  1
  •   Fenton    14 年前

    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."
    
        4
  •  1
  •   Gautham Kumaran    8 年前

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

    确保将PhantomJS可执行文件放在$PATH中。

        5
  •  0
  •   Matthew Iselin    14 年前

    这在技术上当然是可能的。

    您可能需要将HTML直接呈现到一个图像文件上(或者更可能的是,呈现到一个内存中的位图上,该位图一旦完成就被写入到一个图像文件中)。

    当然,这比仅仅在机器上的浏览器中打开页面并按程序截图要复杂一些,但是如果你不关心特定浏览器的结果,结果可能会更好。