2021-10-09 来源:华纳网 责任编辑:韩玉玲 人气:
核心提示:使用ChromeDP生成网页截图

知识点:

生成网页截图

 

 

本课内容:

本节,我们来用ChromeDP来对网页进行截图

先上代码

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
package main
import ("context""io/ioutil"
"log""time""github.com/chromedp/cdproto/emulation""github.com/chromedp/chromedp"
)func main() {
var buf []byte
// create chrome instance
ctx, cancel := chromedp.NewContext(
context.Background(),
chromedp.WithDebugf(log.Printf),
)
defer cancel()


// create a timeout
ctx, cancel = context.WithTimeout(ctx, 50*time.Second)
defer cancel()
var err error
width, height := 1920, 1080
err = chromedp.Run(ctx, chromedp.Tasks{
emulation.SetDeviceMetricsOverride(int64(width), int64(height), 1.0, false),
})


loginUrl := `https://news.sina.com.cn`


err = chromedp.Run(ctx, chromedp.Tasks{
chromedp.Navigate(loginUrl),
chromedp.Sleep(5 * time.Second),
//chromedp.Click(`#login_btn`, chromedp.ByID),
//chromedp.Sleep(5 * time.Second),
chromedp.CaptureScreenshot(&buf),
})


if err != nil {
log.Fatal(err)
}
if err := ioutil.WriteFile("1.png", buf, 0644); err != nil {
log.Fatal(err)
}


}

 

ChromeDP是一个功能过于强大的库,

他可以自动的实现Chrome浏览器的几乎所有功能

生成网页截图只是其一小部分功能

 

 

扩展阅读:

Chromedp是什么

chromedp是一个更快、更简单的Golang库用于调用支持Chrome DevTools协议的浏览器,同时不需要额外的依赖(例如Selenium和PhantomJS)

 

Chrome和Golang都与Google有着相当密切的关系,而Chrome DevTools其实就是Chrome浏览器按下F12之后的控制终端

 

为什么不使用Selenium

对于Golang开发来说,使用chromedp更为便捷,因为它仅仅需要Chrome浏览器而并不需要依赖ChromeDriver,省去了依赖问题,有助于自动化的构建和多平台架构的迁移

 

 

安装chromedp

下载并安装Chrome浏览器

创建Golang项目,开启Go Module(在项目目录下使用终端输入go mod init)

在项目目录下使用终端输入:go get -u github.com/chromedp/chromedp

 

完整的源代码可以登录【华纳网】下载。

https://www.worldwarner.com/




 





免责声明:本文仅代表作者个人观点,与华纳网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。