chromedp ile crawling yaparken actigimiz sayfada bazi dosyalarin indirilmesini engellemek isteyebiliriz. Bu sayede resim, css ve javascript dosyalarinin indirilmesini engelleyerek bandwidth'den kar edebilir, analytics.js gibi dosyalari engelleyerek farkedilirligimizi azaltabiliriz.

chromedp.ListenTarget(*ctx, BlockRequestURLIfMatch(*ctx, "analytics.js$"))
err := chromedp.Run(
    *ctx,
    fetch.Enable(),
    chromedp.Navigate("....")
)


func BlockRequestURLIfMatch(ctx context.Context, pattern string) func(event interface{}) {
    return func(event interface{}) {
        switch ev := event.(type) {
        case *fetch.EventRequestPaused:
            go func() {
                c := chromedp.FromContext(ctx)
                ctx := cdp.WithExecutor(ctx, c.Target)
                re := regexp.MustCompile(pattern)
                if re.FindString(ev.Request.URL) != "" {
                    fetch.FailRequest(ev.RequestID, network.ErrorReasonBlockedByClient).Do(ctx)
                } else {
                    fetch.ContinueRequest(ev.RequestID).Do(ctx)
                }
            }()
        }
    }
}