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)
}
}()
}
}
}