golang使用chrome headless获取网页内容

2019-08-05| 发布者: admin| 查看: |

实例启动后我们就能通过这个实例来访问你喜欢的URL了。

chromedp的实例类型为*chromedp.CDP,它拥有一个func Run error 方法来执行所有的操作。

Action是chromedp的api返回的对象,代表对headless chrome的一个操作,多个操作可以放入chromedp.Tasks里,它是一个元素为Action的slice,也可以作为Run的参数调用。


下面是部分常用的api:

// chromedp.Sleep使headless chrome睡眠d表示的时间长度
func Sleep Action
// chromedp.Navigate使浏览器访问参数给出的URL
func Navigate Action
// chromedp.SendKeys向指定的html元素内输入内容
// sel是选择器字符串或是选择器要求的数据类型
// opts指定使用何种选择器
// 常用的选择器有:
// chromedp.ByID:根据id来选择元素
// chromedp.ByQuery:根据DOM.querySelector的规则选择元素
func SendKeys Action
// chromedp.Submit将指定的元素提交
func Submit Action
// chromedp.WaitReady等待指定元素加载完毕
func WaitReady Action
// chromedp.Click在指定元素上触发鼠标点击事件
func Click Action
// chromedp.OuterHTML获取指定元素的HTML代码
// html参数用于存放返回的HTML
func OuterHTML Action

一个获取页面内容的小例子,更多例子在 https://github.com/chromedp/examples

// 获取服务列表
func GetServiceList chromedp.Tasks {
 return chromedp.Tasks{
 // 访问服务列表
 chromedp.Navigate,
 // 等待直到body加载完毕
 chromedp.WaitReady,
 // 选择显示可用服务
 chromedp.Click,
 // 等待列表渲染
 chromedp.Sleep,
 // 获取获取服务列表HTML
 chromedp.OuterHTML,
var html strin________p是chromedp实例
// ctx是创建cdp时使用的context.Context
err := cdp.Run )
if err != nil {
 // 错误处理
// 成功取得HTML内容进行后续处理
fmt.Println

至此golang通过chromedp使用headless chrome进行动态网页的渲染和操作就介绍完了。

希望这篇文章能给你带来帮助,如有错误之处,欢迎交流指正。