最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

golang快速實現(xiàn)網(wǎng)頁截圖的方法

 更新時間:2021年03月04日 09:21:24   投稿:mrr  
這篇文章主要介紹了golang快速實現(xiàn)網(wǎng)頁截圖的方法,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

golang是近幾年發(fā)展非常迅猛的一款服務(wù)器端的語言,其生態(tài)也日益豐富。對于使用golang實現(xiàn)網(wǎng)頁截圖這個需求,筆者在經(jīng)過一番調(diào)研之后發(fā)現(xiàn)大家有推薦Selenium方案,但是這一方案問題較多:

  • 需要安裝Selenium或是PhantomJS
  • PhantomJS已經(jīng)停止維護(hù)了
  • Selenium的運行需要安裝chromedriver
  • chromedriver對chrome的版本有一定要求

還有推薦headless chrome方案的,但是這一方案也需要自行在服務(wù)器端安裝一款瀏覽器,對服務(wù)器的壓力比較大,并發(fā)性能也不好,所以最后筆者直接選用了一款第三方API的截圖服務(wù)。

該服務(wù)有如下特點:

  • 支持多線路
  • 支持登錄截圖
  • 支持UA變換
  • 支持Cookie注入 實現(xiàn)登錄截圖
  • 支持自定義寬高
  • 支持網(wǎng)頁滾動截圖
  • 支持設(shè)定截圖前的延遲時間

使用方式也很簡單,我們打開它的首頁 https://www.screenshotmaster.com/ 注冊一個賬號,然后你會在用戶中心獲取到一個唯一的Token,保存好這個Token 不要泄漏!

下面來看看它支持的參數(shù):

您可以前往 API文檔 頁面查看更多的參數(shù)。

使用golang調(diào)用截屏大師的接口獲取截圖:

package main

import (
  "fmt"
  "io"
  "io/ioutil"
  "net/http"
  url2 "net/url"
  "os"
)

func main() {
  // 參數(shù)
  token := "YOUR_API_TOKEN"
  url := url2.QueryEscape("https://www.baidu.com")
  width := 1280
  height := 800
  full_page := 1

  // 構(gòu)造URL
  query := "https://www.screenshotmaster.com/api/v1/screenshot"
  query += fmt.Sprintf("?token=%s&url=%s&width=%d&height=%d&full_page=%s",
    token, url, width, height, full_page)

  // 調(diào)用API
  resp, err := http.Get(query)
  if err != nil {
    panic(err)
  }
  defer resp.Body.Close()

  // 檢查是否調(diào)用成功
  if resp.StatusCode != 200 {
    errorBody, _ := ioutil.ReadAll(resp.Body)
    panic(fmt.Errorf("error while calling api %s", errorBody))
  }

  // 保存截圖
  file, err := os.Create("./screenshot.png")
  if err != nil {
    panic(err)
  }
  defer file.Close()

  _, err = io.Copy(file, resp.Body)
  if err != nil {
    panic(err)
  }
}

到此這篇關(guān)于golang快速實現(xiàn)網(wǎng)頁截圖的文章就介紹到這了,更多相關(guān)go實現(xiàn)網(wǎng)頁截圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • golang 生成二維碼海報的實現(xiàn)代碼

    golang 生成二維碼海報的實現(xiàn)代碼

    這篇文章主要介紹了golang 生成二維碼海報的實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • Go語言網(wǎng)站使用異步編程和Goroutine提高Web的性能

    Go語言網(wǎng)站使用異步編程和Goroutine提高Web的性能

    作為一門現(xiàn)代化編程語言,Go語言提供了強(qiáng)大的異步編程能力,使得程序員可以以更高效的方式處理并發(fā)任務(wù),在Go語言中,使用Goroutine在單個進(jìn)程中實現(xiàn)多任務(wù)并行處理,以及如何使用協(xié)程池來進(jìn)一步提高Web服務(wù)器的處理能力,
    2024-01-01
  • 初探Golang數(shù)據(jù)結(jié)構(gòu)之Slice的使用

    初探Golang數(shù)據(jù)結(jié)構(gòu)之Slice的使用

    在學(xué)習(xí)Go語言時,一直對數(shù)組和切片的使用場景好奇,不明白為什么推薦使用切片來代替數(shù)組,所以本文就來和大家梳理一下Slice切片的相關(guān)知識吧
    2023-09-09
  • Golang實現(xiàn)獲取與解析命令行參數(shù)

    Golang實現(xiàn)獲取與解析命令行參數(shù)

    這篇文章主要為大家詳細(xì)介紹了Golang如何實現(xiàn)獲取與解析命令行參數(shù),文中的示例代碼講解詳細(xì),具有一定的借鑒價值,需要的小伙伴可以參考一下
    2024-01-01
  • golang壓縮與解壓縮文件的示例代碼

    golang壓縮與解壓縮文件的示例代碼

    這篇文章主要給大家介紹了golang壓縮與解壓縮文件,文中通過代碼示例給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-02-02
  • 淺析Golang中類型嵌入的簡介與使用

    淺析Golang中類型嵌入的簡介與使用

    類型嵌入指的就是在一個類型的定義中嵌入了其他類型,Go?語言支持兩種類型嵌入,分別是接口類型的類型嵌入和結(jié)構(gòu)體類型的類型嵌入,下面我們就來詳細(xì)一下類型嵌入的使用吧
    2023-11-11
  • 如何使用?Go?獲取你的?IP?地址(推薦)

    如何使用?Go?獲取你的?IP?地址(推薦)

    在Go語言中,獲取IP地址分為公共IP和私有IP兩種方式,公共IP地址通過外部API獲取,本文給大家介紹如何使用?Go?獲取你的?IP?地址,感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • 深入了解Golang包的獲取方法

    深入了解Golang包的獲取方法

    Go語言有一個獲取遠(yuǎn)程包的工具就是go get,本文將詳細(xì)為大家介紹一下Go語言包的獲取的方法,文中的示例代碼講解詳細(xì),感興趣的可以了解一下
    2022-07-07
  • golang 檢查網(wǎng)絡(luò)狀態(tài)是否正常的方法

    golang 檢查網(wǎng)絡(luò)狀態(tài)是否正常的方法

    今天小編就為大家分享一篇golang 檢查網(wǎng)絡(luò)狀態(tài)是否正常的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Golang中時間格式化的實現(xiàn)詳解

    Golang中時間格式化的實現(xiàn)詳解

    這篇文章主要為大家詳細(xì)介紹了Go語言中進(jìn)行時間進(jìn)行格式化的相關(guān)知識,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下
    2023-09-09

最新評論

道真| 烟台市| 吴忠市| 蒙城县| 济源市| 宁安市| 垫江县| 郴州市| 仙居县| 满城县| 泸水县| 淅川县| 广宗县| 望都县| 尼木县| 沭阳县| 沭阳县| 五指山市| 德兴市| 巫山县| 澳门| 石泉县| 宁化县| 古浪县| 永兴县| 利川市| 峨眉山市| 山西省| 灵丘县| 浙江省| 江口县| 盐源县| 梁山县| 皮山县| 井冈山市| 周宁县| 柳河县| 渭源县| 根河市| 吉木乃县| 邯郸县|