Что я хочу сделать, учитывая URL-адрес и снимок экрана веб-сайта с помощью Golang. Я искал результаты, но не получил. Кто-нибудь может мне помочь, пожалуйста.
Как сделать снимок экрана веб-сайта с помощью Golang?
Ответы (5)
Вы можете использовать версию Selenium для Go, если хотите пойти по этому пути. https://godoc.org/github.com/tebeka/selenium
На данный момент нет способа сделать это на чистом голанге, так как он должен включать браузер в какой-то форме.
Вероятно, самый простой способ реализовать эту функциональность:
- Найдите хорошую библиотеку NodeJS, чтобы делать скриншоты веб-сайтов
- Создайте сценарий NodeJS, который соответствует вашим потребностям для создания снимков экрана (ввод-вывод и настройки)
- Выполните этот скрипт NodeJS из Golang и обработайте результаты в своем коде Golang.
Это не самый чистый способ сделать это - если вы хотите, чтобы он был чище, вам, вероятно, придется создать / найти пакет golang, который управляет браузером, чтобы вы могли пропустить посредника NodeJS.
Я решил эту проблему с помощью https://github.com/mafredri/cdp и контейнера Docker без заголовка Chrome. .
Вы можете увидеть мой пример услуги здесь: https://gist.github.com/
Еще несколько инструментов, использующих Go и Chrome / Chromium, включают:
- Приложение
gowitness
с интерфейсом командной строки - Библиотека
screenshot
web2image
CLI-приложение на основе _ 4_
Я писал программу для этой конкретной задачи. Вот пример кода, который просматривает 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