精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

什么是無頭瀏覽器?用Go模擬用戶操作、實(shí)現(xiàn)網(wǎng)頁瀏覽和截圖

系統(tǒng) 瀏覽器
本文介紹了如何使用Golang實(shí)現(xiàn)無頭瀏覽器截圖的功能。通過使用chromedp和rod庫,可以方便地控制瀏覽器進(jìn)行截圖、模擬用戶操作等功能。

前言

在Web開發(fā)中,有時需要對網(wǎng)頁進(jìn)行截圖,以便進(jìn)行頁面預(yù)覽、測試等操作。

而使用無頭瀏覽器來實(shí)現(xiàn)截圖功能,可以避免手動操作的繁瑣和不穩(wěn)定性。

這篇文章將介紹:使用Golang進(jìn)行無頭瀏覽器的截圖,輕松實(shí)現(xiàn)頁面預(yù)覽、測試和模擬用戶操作。

什么是無頭瀏覽器

無頭瀏覽器(Headless Browser)是一種沒有圖形用戶界面的瀏覽器,它可以在后臺運(yùn)行,并通過編程接口來控制和操作瀏覽器。

無頭瀏覽器通常用于自動化測試、網(wǎng)頁截圖、爬蟲等場景,可以幫助我們更方便地進(jìn)行網(wǎng)頁操作和數(shù)據(jù)采集。

常見的無頭瀏覽器包括Chrome Headless、PhantomJS、Puppeteer等。

在Golang中,可以使用chromedp和rod等庫來實(shí)現(xiàn)無頭瀏覽器截圖的功能。

更多場景

使用Golang實(shí)現(xiàn)無頭瀏覽器截圖可以在很多場景下發(fā)揮作用,以下是一些常見的場景:

  1. 網(wǎng)頁截圖:使用無頭瀏覽器可以方便地對網(wǎng)頁進(jìn)行截圖,可以用于生成網(wǎng)頁快照、監(jiān)控網(wǎng)頁變化等。
  2. 自動化測試:使用無頭瀏覽器可以模擬用戶操作,可以用于自動化測試、自動化部署等。
  3. 網(wǎng)頁爬蟲:使用無頭瀏覽器可以模擬瀏覽器行為,可以用于網(wǎng)頁爬蟲、數(shù)據(jù)采集等。
  4. 數(shù)據(jù)分析:使用無頭瀏覽器可以獲取網(wǎng)頁數(shù)據(jù),可以用于數(shù)據(jù)分析、機(jī)器學(xué)習(xí)等。

使用chromedp

chromedp是一個基于Chrome或Chromium瀏覽器的DevTools協(xié)議的庫,可以方便地控制瀏覽器進(jìn)行截圖、模擬用戶操作等功能。

以下是使用chromedp庫實(shí)現(xiàn)無頭瀏覽器截圖的示例代碼:

package main

import (
   "context"
   "io/ioutil"
   "log"
   "time"

   "github.com/chromedp/cdproto/page"
   "github.com/chromedp/chromedp"
)

func main() {
   // 創(chuàng)建一個上下文
   ctx, cancel := chromedp.NewContext(context.Background())
   defer cancel()

   // 設(shè)置瀏覽器選項(xiàng)
   opts := append(chromedp.DefaultExecAllocatorOptions[:],
      chromedp.Flag("headless", true),
      chromedp.Flag("disable-gpu", true),
      chromedp.Flag("no-sandbox", true),
      chromedp.Flag("disable-dev-shm-usage", true),
      chromedp.Flag("remote-debugging-port", "9222"),
   )
   allocCtx, cancel := chromedp.NewExecAllocator(ctx, opts...)
   defer cancel()

   // 創(chuàng)建一個瀏覽器實(shí)例
   ctx, cancel = chromedp.NewContext(allocCtx)
   defer cancel()

   // 導(dǎo)航到指定的URL
   var buf []byte
   err := chromedp.Run(ctx, chromedp.Navigate("https://www.baidu.com"), chromedp.Sleep(2*time.Second), chromedp.ActionFunc(func(ctx context.Context) error {
      // 獲取頁面截圖
      var err error
      buf, err = page.CaptureScreenshot().WithQuality(90).WithClip(&page.Viewport{X: 0, Y: 0, Width: 1920, Height: 1080, Scale: 1}).Do(ctx)
      if err != nil {
         return err
      }
      return nil
   }))
   if err != nil {
      log.Fatal(err)
   }
   // 將截圖保存到文件
   err = ioutil.WriteFile("screenshot.png", buf, 0644)
   if err != nil {
      log.Fatal(err)
   }
}

這段代碼使用chromedp庫創(chuàng)建了一個無頭瀏覽器實(shí)例,并導(dǎo)航到百度首頁。

然后使用page.CaptureScreenshot()函數(shù)獲取頁面截圖,并將截圖保存到screenshot.png文件中。

圖片

screenshot.png

運(yùn)行演示

把我上面的代碼復(fù)制到main.go文件中,安裝依賴直接運(yùn)行即可:

go mod tidy

go run main.go

執(zhí)行效果如下:

圖片

需要注意的是,使用chromedp庫需要先安裝Chrome或Chromium瀏覽器,并將其添加到系統(tǒng)的環(huán)境變量中。

使用rod庫

rod是另一個基于Chrome或Chromium瀏覽器的DevTools協(xié)議的庫,可以方便地控制瀏覽器進(jìn)行截圖、模擬用戶操作等功能。

以下是使用rod庫實(shí)現(xiàn)無頭瀏覽器截圖的示例代碼:

package main

import (
 "github.com/go-rod/rod"
 "github.com/go-rod/rod/lib/proto"
 "github.com/go-rod/rod/lib/utils"
 "github.com/ysmood/gson"
)

func main() {
 page := rod.New().MustConnect().MustPage("https://baidu.com").MustWaitLoad()

 //簡單模式,默認(rèn)截圖設(shè)置
 page.MustScreenshot("my.png")

 //自定義截圖設(shè)置
 img, _ := page.Screenshot(true, &proto.PageCaptureScreenshot{
  Format:  proto.PageCaptureScreenshotFormatJpeg,
  Quality: gson.Int(90),
  Clip: &proto.PageViewport{
   X:      0,
   Y:      0,
   Width:  300,
   Height: 200,
   Scale:  1,
  },
  FromSurface: true,
 })
 _ = utils.OutputFile("my.jpg", img)
}

這段代碼使用rod庫創(chuàng)建了一個無頭瀏覽器實(shí)例,并導(dǎo)航到百度首頁。

然后使用page.MustScreenshot()函數(shù)獲取頁面截圖,并將截圖保存到my.png文件中。

圖片

同樣演示了使用page.Screenshot自定義截圖,并將自定義截圖保存到了my.jpg文件中。

圖片

需要注意的是,使用rod庫需要先安裝Chrome或Chromium瀏覽器,并將其添加到系統(tǒng)的環(huán)境變量中。

運(yùn)行方式

rod庫示例代碼的運(yùn)行方式和chromedp基本一致,略有區(qū)別的是我們需要根據(jù)提示,運(yùn)行多次go run main.go安裝需要的插件:

圖片

碰到上面提示不用慌,再執(zhí)行一次go run main.go即可

圖片

執(zhí)行效果如下:

圖片

注意

再強(qiáng)調(diào)一遍,不管是使用chromedp庫還是rod庫,都需要先安裝Chrome或Chromium瀏覽器,并將其添加到系統(tǒng)的環(huán)境變量中。

我文章中的演示是基于Mac OS。

總結(jié)

本文介紹了如何使用Golang實(shí)現(xiàn)無頭瀏覽器截圖的功能。

通過使用chromedp和rod庫,可以方便地控制瀏覽器進(jìn)行截圖、模擬用戶操作等功能。

使用Golang實(shí)現(xiàn)無頭瀏覽器截圖的優(yōu)勢包括:

高效性:Golang是一種高效的編程語言,可以快速地處理大量數(shù)據(jù)和請求。

可擴(kuò)展性:Golang具有良好的可擴(kuò)展性,可以方便地?cái)U(kuò)展和修改代碼。

跨平臺性:Golang可以在多個平臺上運(yùn)行,可以方便地進(jìn)行跨平臺開發(fā)和部署。

安全性:Golang具有良好的安全性,可以有效地防止代碼注入和攻擊。

綜上所述,使用Golang實(shí)現(xiàn)無頭瀏覽器截圖可以在很多場景下發(fā)揮作用,具有高效性、可擴(kuò)展性、跨平臺性和安全性等優(yōu)勢。

本文轉(zhuǎn)載自微信公眾號「 程序員升級打怪之旅」,作者「王中陽Go」,可以通過以下二維碼關(guān)注。

轉(zhuǎn)載本文請聯(lián)系「 程序員升級打怪之旅」公眾號。

責(zé)任編輯:武曉燕 來源: 程序員升職加薪之旅
相關(guān)推薦

2009-03-23 08:52:51

2025-06-27 16:07:08

AIAgent瀏覽器

2015-06-12 10:08:18

QQ瀏覽器9.0

2024-02-04 17:12:49

2011-07-15 09:56:54

NPAPI開發(fā)火狐

2012-03-20 11:31:58

移動瀏覽器

2012-03-19 17:25:22

2012-03-20 11:41:18

海豚瀏覽器

2010-06-28 14:40:46

FTP協(xié)議

2012-03-20 11:07:08

2021-11-15 10:52:04

谷歌 Chrome 瀏覽器

2014-04-09 09:56:41

移動瀏覽器應(yīng)用

2011-12-28 10:35:27

2009-08-11 08:58:19

linux命令瀏覽網(wǎng)頁linux命令行參數(shù)linux命令行

2010-04-05 21:57:14

Netscape瀏覽器

2012-06-21 15:38:02

獵豹瀏覽器

2013-11-22 15:05:13

DDoSDDoS攻擊

2012-03-19 17:17:00

移動瀏覽器歐朋

2012-03-20 11:22:02

QQ手機(jī)瀏覽器

2016-09-21 14:24:37

3D全景瀏覽器瀏覽器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

国产91丝袜在线18| 亚洲区小说区| 一区二区视频在线看| 成人h在线播放| 在线观看黄网站| 国产一区不卡| 欧美一三区三区四区免费在线看 | 欧美激情精品久久久久| 大桥未久恸哭の女教师| 校园春色亚洲色图| 亚洲品质自拍视频网站| 国产女主播一区二区三区| 无码人妻精品一区二区| 亚洲区综合中文字幕日日| 亚洲福利视频网站| 国模私拍视频在线观看| 色在线中文字幕| 亚洲视频在线观看三级| 久久综合给合久久狠狠色| 一卡二卡在线观看| 97人妻精品一区二区三区动漫| 国产91精品入| 欧美性猛交一区二区三区精品| 欧美视频在线第一页| 男人久久精品| 国产大片一区二区| 国产精品美女无圣光视频| 久久久久久久极品内射| 欧美影院三区| 日韩精品视频免费| 丰满饥渴老女人hd| 成人午夜一级| 欧美性猛交视频| 黄色一级大片免费| 国产精品视频二区三区| 成人午夜大片免费观看| 91精品视频免费观看| 久久精品视频7| 一本色道久久| 欧美国产精品日韩| 免费三级在线观看| 成人羞羞网站入口| 亚洲欧美日韩国产中文专区| 四虎成人免费视频| 久久影院一区二区三区| 欧美日韩一级二级三级| 无码少妇一区二区三区芒果| 蜜桃av在线播放| 亚洲.国产.中文慕字在线| 黄黄视频在线观看| 看黄网站在线| 中文字幕一区二区视频| 无遮挡亚洲一区| 国产午夜在线观看| 久久久精品天堂| 欧美福利精品| 全色精品综合影院| 91麻豆国产香蕉久久精品| 国产日韩一区二区| 手机看片福利永久| 99久久婷婷国产综合精品| 高清免费日韩| 黄色av小说在线观看| 欧美日韩在线精品一区二区三区激情综 | 久久嫩草捆绑紧缚| 日韩精品免费| 日韩视频亚洲视频| 久久av红桃一区二区禁漫| 日韩欧美高清在线播放| 色久欧美在线视频观看| 美国黄色片视频| 性欧美69xoxoxoxo| 久久91精品国产91久久跳| 麻豆changesxxx国产| 国产一区视频在线观看免费| 久久久久久久久久国产| 日本在线视频免费观看| 午夜在线精品| 国产精品视频xxx| 国产美女免费视频| 国产91精品一区二区麻豆亚洲| 国产精品久久久久久久久久久久冷| 免费观看的毛片| wwww国产精品欧美| 天堂av一区二区| 久久日韩视频| 亚洲国产成人91porn| 69堂免费视频| 国产福利一区二区三区在线播放| 欧美日韩成人在线一区| 一区二区在线免费观看视频| 欧美人与动xxxxz0oz| 夜夜嗨av一区二区三区免费区| 老司机深夜福利网站| 欧美三区不卡| 日韩av男人的天堂| 国产精品久久久久久久久久久久久久久久| 国产成人精品综合在线观看| 欧美激情视频一区二区三区| 色综合久久影院| 亚洲成人av一区| 久久久精品三级| 一区二区三区四区高清视频| 亚洲一级免费视频| 欧美成欧美va| 久久亚洲风情| 欧美伊人久久| 最近2019免费中文字幕视频三| 久草视频手机在线| 亚洲欧美网站| 亚洲影视中文字幕| 精品视频一二区| 亚洲精品v日韩精品| 国产女女做受ⅹxx高潮| 激情久久免费视频| 亚洲日本欧美中文幕| 欧美成人精品欧美一级私黄| 老**午夜毛片一区二区三区| 9a蜜桃久久久久久免费| 国产98在线| 天天av天天翘天天综合网| 中文字幕永久有效| 亚洲伊人春色| 国内精品一区二区三区| 97精品久久人人爽人人爽| 91在线视频在线| 日本成人在线不卡| 欧洲精品久久久久毛片完整版| 日韩成人在线电影网| 色婷婷在线视频观看| 日韩高清不卡在线| 国产精品一区在线观看| 国产黄色在线网站| 欧美日韩一区二区电影| 久久成人激情视频| 国产精品久久久免费| 操一操视频一区| 黄色在线论坛| 欧美日韩专区在线| 久久久久久久毛片| 久久久亚洲人| 美女一区视频| 卡通欧美亚洲| 亚洲男人天堂手机在线| 久久久国产高清| aaa欧美色吧激情视频| 国产美女永久无遮挡| 亚洲精品视频一二三区| 欧美乱大交xxxxx另类电影| 国产欧美日韩成人| 自拍视频在线观看一区二区| 九九久久久久久| 91精品动漫在线观看| 91精品一区二区| 久草视频免费在线播放| 9191在线| 午夜国产精品影院在线观看| 免费啪视频在线观看| 亚洲二区视频| 久久久婷婷一区二区三区不卡| 黄视频网站在线观看| 日韩h在线观看| 黄色网址中文字幕| 国产欧美日韩激情| 激情 小说 亚洲 图片: 伦| 高清在线一区| 丝袜亚洲欧美日韩综合| 国产精品无码粉嫩小泬| 欧美激情一二三区| 伊人色在线视频| 久久久久美女| 亚洲在线一区二区| 亚洲羞羞网站| 欧美特级限制片免费在线观看| 久久精品国产亚洲AV成人婷婷| 日本美女一区二区三区视频| 天堂精品一区二区三区| 四虎影视国产精品| www日韩中文字幕在线看| 91午夜交换视频| 亚洲男人的天堂在线观看| 国产高清av片| 欧美婷婷在线| 欧美一级二级三级| 91福利精品在线观看| www.xxxx精品| www三级免费| 一区二区三区精品| 男人操女人动态图| 久久精品免费观看| 女人床在线观看| 久久精品国产亚洲blacked| 欧美一级电影久久| 国产三级在线| 91精品国产综合久久国产大片| 国产精品久久久久久久精| 成人免费三级在线| 亚洲一区在线不卡| 欧美午夜一区| 女女同性女同一区二区三区91| 视频精品导航| 另类天堂视频在线观看| 日韩欧美在线观看一区二区| 欧美日韩精品高清| 国产系列精品av| 欧美国产视频在线| 欧美xxxxx少妇| 久久婷婷影院| 欧洲金发美女大战黑人| 色婷婷av一区二区三区丝袜美腿| 成人欧美一区二区三区黑人孕妇| av影院在线免费观看| 在线视频免费一区二区| 精品人妻无码一区二区三区蜜桃一| 精品成人av一区| 天天天天天天天天操| 99精品国产视频| 99九九99九九九99九他书对| 一区二区三区成人精品| 国产精品无码乱伦| 精品影片在线观看的网站| 91在线视频精品| 午夜欧美巨大性欧美巨大| 欧美巨乳在线观看| 日本在线观看网站| 日韩精品一区二区三区四区 | 456亚洲影院| 日本韩国在线视频爽| 亚洲成人av在线| 91丨porny丨在线中文| 欧美在线观看一区二区| 国产一二三四在线| 日韩一区中文字幕| 99久久久久久久久久| 99久久精品免费看国产| 一级片黄色免费| 美女视频一区二区| 国产一区二区三区精彩视频| 一本色道久久综合| 国产精品国三级国产av| 久久国产影院| 日日骚一区二区网站| 国产精品亚洲二区| 精品一区二区三区视频日产| 亚洲三级av| 亚洲一区制服诱惑| 精品一区二区三区四区五区 | 亚洲高清在线观看一区| 伊人久久大香线蕉无限次| 国严精品久久久久久亚洲影视| 日韩欧美久久| 91一区二区三区| 日韩欧美一级| 99精彩视频| 久久国产精品美女| 成人字幕网zmw| 警花av一区二区三区| 91九色综合久久| 在线高清欧美| 91视频国产一区| 丁香婷婷久久| 成人午夜在线影院| 国产成人视屏| 亚洲一区精品电影| 二区三区精品| 91原创国产| 激情亚洲另类图片区小说区| 国产日韩一区二区| 国产精品久av福利在线观看| 亚洲一区二区久久久久久| 二区三区精品| av一区二区三区免费| 77成人影视| 麻豆av一区二区三区| 视频精品在线观看| 亚洲精品在线视频观看| 国产精品麻豆久久| 岛国大片在线播放| 亚洲精品一二| 久久久噜噜噜www成人网| 久久福利毛片| www.国产福利| 高清国产一区二区| 日本japanese极品少妇| 99精品视频在线观看| 精品国产aaa| 17c精品麻豆一区二区免费| 欧美在线视频第一页| 亚洲综合清纯丝袜自拍| 亚洲欧美自拍视频| 欧美精三区欧美精三区| 国产高清免费av| 亚洲欧美日韩中文在线| 嫩草在线视频| 久久久久久中文| 欧美gay视频| 95av在线视频| 欧美sss在线视频| 天天综合狠狠精品| 中文在线日韩| 日本成人在线免费视频| 韩国v欧美v日本v亚洲v| 久久精品女同亚洲女同13| 国产精品卡一卡二| 麻豆一区二区三区精品视频| 色综合久久久久综合| 国产伦精品一区二区三区免.费 | 国产精品91在线| 国产日本亚洲| 久久久久欧美| 亚洲电影影音先锋| 欧美成人xxxxx| 国产精品12区| 久久精品—区二区三区舞蹈| 一区二区三区精品久久久| 中文字幕在线播放日韩| 亚洲第一网站免费视频| 色三级在线观看| 91国产精品电影| 911亚洲精品| 亚洲欧洲另类精品久久综合| 亚洲国产一区二区三区高清| 亚洲欧美日韩一二三区| 国产三级一区二区| 久久久久免费看| 欧美男男青年gay1069videost| 欧美日韩在线中文字幕| 欧美另类高清videos| 国产情侣一区二区三区| 精品欧美一区二区精品久久| 888久久久| 久热精品在线播放| 久久综合久久综合久久| 日韩av片在线播放| 日韩写真欧美这视频| 在线免费黄色| 国产精品影院在线观看| 台湾亚洲精品一区二区tv| 免费网站在线观看视频| 蜜桃一区二区三区在线| 精品人妻中文无码av在线| 欧美丝袜第一区| 日本激情视频在线播放| 国产一区二区不卡在线 | 电影91久久久| 亚洲美女自拍偷拍| 蜜桃视频在线一区| 日本乱子伦xxxx| 色噜噜狠狠成人网p站| 手机看片1024国产| 久久久欧美一区二区| 99蜜月精品久久91| 亚洲欧美精品| 青青草国产成人99久久| 亚洲欧洲久久久| 欧美日韩一区二区三区不卡 | 中文字幕不卡av| 亚洲精品88| 蜜桃传媒视频麻豆第一区免费观看| 影音先锋国产精品| 在线中文字日产幕| 婷婷国产v国产偷v亚洲高清| 免费国产羞羞网站视频| 欧美高清性猛交| 清纯唯美激情亚洲| 老司机午夜网站| 国产精品综合在线视频| 1024手机在线观看你懂的| 在线成人av影院| 黄色精品免费看| 亚洲精品日韩av| 亚洲美女黄色| 亚洲国产果冻传媒av在线观看| 亚洲.国产.中文慕字在线| 毛片网站在线| 国产精品日韩在线观看| 91免费精品| 久久久久亚洲av无码专区首jn| 亚洲午夜免费电影| 色wwwwww| 97色在线播放视频| 精品国产91乱码一区二区三区四区| 国产一级片黄色| 国产精品久久久久久久久果冻传媒 | 国产成人精品电影久久久| 四虎成人av| 在线观看一区二区三区四区| 欧美日韩中文字幕在线| 色开心亚洲综合| 91手机在线观看| aa级大片欧美三级| 国产精品麻豆免费版现看视频| 3atv一区二区三区| 国精一区二区三区| 欧洲久久久久久| 在线观看不卡的av| 日韩在线欧美在线国产在线| 成人免费在线电影网| 成熟老妇女视频| 中文字幕二三区不卡|