如何使用golang获取网站的屏幕截图?

时间:2017-02-16 12:28:45

标签: go

我想要做什么,给出一个URL并使用golang截取网站的截图。我搜索了结果,但我没有得到任何结果。任何人都可以帮助我。

5 个答案:

答案 0 :(得分:2)

此刻没有纯粹的golang方法,因为它必须涉及浏览器的某种形式。

实现此功能的最简单途径可能是:

  • 找一个不错的NodeJS库来获取网站截图
  • 创建适合您截屏(i / o和设置)
  • 的NodeJS脚本
  • 从Golang执行此NodeJS脚本并在Golang代码中处理结果

这不是最干净的方法 - 如果你想要它更清洁你可能必须构建/找到一个控制浏览器的golang包,这样你就可以跳过NodeJS中间人。

答案 1 :(得分:1)

如果您想要走这条路线,可以使用Go版本的Selenium。 https://godoc.org/github.com/tebeka/selenium

答案 2 :(得分:0)

我使用https://github.com/mafredri/cdp和Chrome无头泊坞广告容器解决了这个问题。

您可以在此处查看我的服务示例:https://gist.github.com/efimovalex/9f9b815b0d5b1b7889a51d46860faf8a

答案 3 :(得分:0)

更多使用Go和Chrome / Chromium的工具包括:

答案 4 :(得分:0)

我正在为此特定任务编写程序。以下是浏览 google.com 并截取屏幕截图的示例代码。

package main

import (
    "time"

    driver "github.com/dreygur/webdriver"
)

func main() {
    url := `https://google.com`
    driver.RunServer("./geckodriver")
    driver.GetSession()
    driver.Get(url)
    time.Sleep(8 * time.Second)
    driver.Screenshot("google")
    time.Sleep(8 * time.Second)

    defer driver.Kill()
}

要安装模块,请运行 go get github.com/dreygur/webdriver