Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Golang拍摄网站截图?_Go_Webpage Screenshot - Fatal编程技术网

如何使用Golang拍摄网站截图?

如何使用Golang拍摄网站截图?,go,webpage-screenshot,Go,Webpage Screenshot,我想做的是,给我一个URL,然后用Golang截图。我搜索了结果,但没有得到任何结果。有人能帮我吗。目前没有纯粹的golang方法,因为它必须涉及某种形式的浏览器 实现此功能的最简单途径可能是: 找到一个不错的NodeJS库来拍摄网站截图 创建一个符合您截图(i/o和设置)需要的NodeJS脚本 从Golang执行这个NodeJS脚本,并在Golang代码中处理结果 但这不是最干净的方法——如果你想让它更干净,你可能必须构建/找到一个控制浏览器的golang包,这样你就可以跳过NodeJS中

我想做的是,给我一个URL,然后用Golang截图。我搜索了结果,但没有得到任何结果。有人能帮我吗。

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

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

  • 找到一个不错的NodeJS库来拍摄网站截图
  • 创建一个符合您截图(i/o和设置)需要的NodeJS脚本
  • 从Golang执行这个NodeJS脚本,并在Golang代码中处理结果

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

如果你想走这条路,你可以使用Go版本的Selenium

我用一个镀铬的无头docker容器解决了这个问题


您可以在这里看到我的服务示例:

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

  • CLI应用程序
  • 图书馆
  • 基于的CLI应用程序

我正在为这个特定任务编写一个程序。下面是浏览
google.com
并截图的示例代码

主程序包
进口(
“时间”
驱动程序“github.com/dreygur/webdriver”
)
func main(){
网址:=`https://google.com`
驱动程序.RunServer(“./geckodriver”)
driver.GetSession()
获取驱动程序(url)
时间。睡眠(8*时间。秒)
驱动程序屏幕截图(“谷歌”)
时间。睡眠(8*时间。秒)
延迟驱动程序Kill()
}

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

需要纯go中的渲染引擎。没有。使用PhantomJS或类似的东西。告诉用户通过按“打印屏幕”按钮上传屏幕截图。