濮阳杆衣贸易有限公司

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

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

熱門標簽:湛江crm外呼系統(tǒng)排名 地圖標注免費定制店 鄭州智能語音電銷機器人價格 宿遷便宜外呼系統(tǒng)代理商 重慶慶云企業(yè)400電話到哪申請 上海極信防封電銷卡價格 仙桃400電話辦理 不封卡外呼系統(tǒng) 寧波語音外呼系統(tǒng)公司

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

  • 需要安裝Selenium或是PhantomJS
  • PhantomJS已經(jīng)停止維護了
  • 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=%surl=%swidth=%dheight=%dfull_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)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Go 高效截取字符串的一些思考
  • Golang中文字符串截取函數(shù)實現(xiàn)原理
  • go語言按顯示長度截取字符串的方法
  • Go語言按字節(jié)截取字符串的方法
  • Go語言截取字符串函數(shù)用法

標簽:安康 海南 物業(yè)服務(wù) 西雙版納 電子產(chǎn)品 儋州 遼寧 青海

巨人網(wǎng)絡(luò)通訊聲明:本文標題《golang快速實現(xiàn)網(wǎng)頁截圖的方法》,本文關(guān)鍵詞  golang,快速,實現(xiàn),網(wǎng)頁,截圖,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《golang快速實現(xiàn)網(wǎng)頁截圖的方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于golang快速實現(xiàn)網(wǎng)頁截圖的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    小金县| 油尖旺区| 宜黄县| 四会市| 永登县| 若尔盖县| 陆丰市| 长葛市| 阜新市| 澎湖县| 咸阳市| 濮阳市| 井陉县| 平江县| 手游| 祁东县| 泰州市| 西安市| 巴彦淖尔市| 安顺市| 洪泽县| 大悟县| 冷水江市| 越西县| 渭源县| 政和县| 舒兰市| 开原市| 社会| 扬中市| 浮山县| 石屏县| 青冈县| 水富县| 兴宁市| 那曲县| 定兴县| 肥城市| 安康市| 石嘴山市| 定远县|