1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
| package main
import (
"context"
"io/ioutil"
"log"
"github.com/chromedp/chromedp"
)
func main() {
ctx, cancel := chromedp.NewContext(context.Background(), chromedp.WithDebugf(log.Printf))
defer cancel()
url := "https://www.minigame.vip/"
filename := "minigame.png"
var imageBuf []byte
// 捕获某个元素的截图
if err := chromedp.Run(ctx, elementScreenshot(`https://pkg.go.dev/`, `img.Homepage-logo`, &imageBuf)); err != nil {
log.Fatal(err)
}
if err := ioutil.WriteFile("elementScreenshot.png", imageBuf, 0644); err != nil {
log.Fatal(err)
}
if err := chromedp.Run(ctx, ScreenshotTasks(url, &imageBuf)); err != nil {
log.Fatal(err)
}
if err := ioutil.WriteFile(filename, imageBuf, 0644); err != nil {
log.Fatal(err)
}
}
func elementScreenshot(urlstr, sel string, res *[]byte) chromedp.Tasks {
return chromedp.Tasks{
chromedp.Navigate(urlstr),
chromedp.Screenshot(sel, res, chromedp.NodeVisible),
}
}
func ScreenshotTasks(url string, imageBuf *[]byte) chromedp.Tasks {
return chromedp.Tasks{
chromedp.Navigate(url),
chromedp.FullScreenshot(imageBuf, 90),
}
}
|