golang 使用chromedp获取页面请求日志network

 更新时间:2023年11月12日 11:57:35   作者:李渊桥  
这篇文章主要为大家介绍了golang 使用chromedp获取页面请求日志network方法实例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

golang 使用chromedp获取页面请求日志network

package main
import (
    "context"
    "io/ioutil"
    "log"
    "os"
    "strings"
    "time"
    "github.com/chromedp/cdproto/network"
    "github.com/chromedp/chromedp"
)
func main() {
    dir, err := ioutil.TempDir("", "chromedp-example")
    if err != nil {
        panic(err)
    }
    defer os.RemoveAll(dir)
    opts := append(chromedp.DefaultExecAllocatorOptions[:],
        chromedp.DisableGPU,
        chromedp.NoDefaultBrowserCheck,
        chromedp.Flag("headless", false),
        chromedp.Flag("ignore-certificate-errors", true),
        chromedp.Flag("window-size", "50,400"),
        chromedp.UserDataDir(dir),
    )
    allocCtx, cancel := chromedp.NewExecAllocator(context.Background(), opts...)
    defer cancel()
    // also set up a custom logger
    taskCtx, cancel := chromedp.NewContext(allocCtx, chromedp.WithLogf(log.Printf))
    defer cancel()
    // create a timeout
    taskCtx, cancel = context.WithTimeout(taskCtx, 10*time.Second)
    defer cancel()
    // ensure that the browser process is started
    if err := chromedp.Run(taskCtx); err != nil {
        panic(err)
    }
    // listen network event
    listenForNetworkEvent(taskCtx)
    chromedp.Run(taskCtx,
        network.Enable(),
        chromedp.Navigate(`https://www.iqiyi.com/v_19rsbimvyo.html`),
        chromedp.WaitVisible(`body`, chromedp.BySearch),
    )
}
//监听
func listenForNetworkEvent(ctx context.Context) {
    chromedp.ListenTarget(ctx, func(ev interface{}) {
        switch ev := ev.(type) {
        case *network.EventResponseReceived:
            resp := ev.Response
            if len(resp.Headers) != 0 {
                // log.Printf("received headers: %s", resp.Headers)
                if strings.Index(resp.URL, ".ts") != -1 {
                    log.Printf("received headers: %s", resp.URL)
                }
            }
        }
        // other needed network Event
    })
}

服务器部署

centos安装 需要是64位系统

//安装chrome-headless 没有界面的浏览器 需要root权限
curl https://intoli.com/install-google-chrome.sh | bash 
安装 ffmpeg
http://ffmpeg.org/download.html 下载地址
wget http://www.ffmpeg.org/releases/ffmpeg-3.4.1.tar.bz2
tar -xjvf ffmpeg-3.4.1.tar.bz2
cd ffmpeg-3.4.1
./configure
make && make install

以上就是golang 使用chromedp获取页面请求日志network的详细内容,更多关于go chromedp获取志network的资料请关注脚本之家其它相关文章!

相关文章

  • Go语言操作Excel利器之excelize类库详解

    Go语言操作Excel利器之excelize类库详解

    Excelize是Go语言编写的用于操作Office Excel文档基础库,基于ECMA-376,ISO/IEC 29500国际标准,可以使用它来读取、写入由Excel 2007及以上版本创建的电子表格文档,下面这篇文章主要给大家介绍了关于Go语言操作Excel利器之excelize类库的相关资料,需要的朋友可以参考下
    2022-10-10
  • 详解golang中Context超时控制与原理

    详解golang中Context超时控制与原理

    Context本身的含义是上下文,我们可以理解为它内部携带了超时信息、退出信号,以及其他一些上下文相关的值,本文给大家详细介绍了golang中Context超时控制与原理,文中有相关的代码示例供大家参考,需要的朋友可以参考下
    2024-01-01
  • 详解Opentelemetry Collector采集器

    详解Opentelemetry Collector采集器

    这篇文章主要为大家介绍了Opentelemetry Collector神秘的采集器详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • 深入浅析Go中三个点(...)用法

    深入浅析Go中三个点(...)用法

    这篇文章主要介绍了深入浅析Go中三个点(...)用法,需要的朋友可以参考下
    2021-10-10
  • 利用go语言判断是否是完全二叉树

    利用go语言判断是否是完全二叉树

    这篇文章主要介绍了利用go语言判断是否是完全二叉树,当一个节点存在右子节点但是不存在左子节点这颗树视为非完全二叉树,通过利用GO语言判断来判断出否是完全二叉树,详细内容参考如下
    2022-05-05
  • GO使用阿里云,解决go get下载项目慢或无法下载的情况

    GO使用阿里云,解决go get下载项目慢或无法下载的情况

    这篇文章主要介绍了GO使用阿里云,解决go get下载项目慢或无法下载的情况,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • Golang标准库container/list的用法图文详解

    Golang标准库container/list的用法图文详解

    提到单向链表,大家应该是比较熟悉的了,这篇文章主要为大家详细介绍了Golang标准库container/list的用法相关知识,感兴趣的小伙伴可以了解下
    2024-01-01
  • 详解Golang如何使用Debug库优化代码

    详解Golang如何使用Debug库优化代码

    这篇文章将针对Golang的debug库进行全面解读,涵盖其核心组件、高级功能和实战技巧,文中的示例代码讲解详细,有需要的小伙伴可以参考下
    2024-02-02
  • Golang实现常见的限流算法的示例代码

    Golang实现常见的限流算法的示例代码

    限流是项目中经常需要使用到的一种工具,一般用于限制用户的请求的频率,也可以避免瞬间流量过大导致系统崩溃,或者稳定消息处理速率,本文主要介绍了使用Go实现常见的限流算法,希望对大家有所帮助
    2023-04-04
  • 一文总结Go语言切片核心知识点和坑

    一文总结Go语言切片核心知识点和坑

    都说Go的切片用起来丝滑得很,Java中的List怎么用,切片就怎么用,作为曾经的Java选手,因为切片的使用不得当,喜提缺陷若干,本文就给大家总结一下Go语言切片核心知识点和坑,需要的朋友可以参考下
    2023-06-06

最新评论