chromedp
ChromeDP is an open-source library for driving browsers using the Chrome DevTools Protocol (CDP) in the Go programming language. It is a high-level library that abstracts away the low-level details of interacting with the CDP and provides a simple, intuitive API for performing common browser automation tasks such as clicking elements, filling out forms, and taking screenshots.
ChromeDP also supports parallel execution of browser tasks, making it well-suited for large-scale web scraping and testing applications. It is considered as one of the most popular Go package for automation and scraping tasks.
Example Use
```go package main
import ( "context" "fmt"
"github.com/chromedp/chromedp" )
func main() { var title, firstParagraph string
// create context ctx, cancel := chromedp.NewContext(context.Background()) defer cancel()
// run task list (a scraping scenario) err := chromedp.Run(ctx, // go to page chromedp.Navigate("https://www.example.com"), // wait for element to load chromedp.WaitVisible("body"), // extract text from an element (css selector) chromedp.Text("title", &title), // extract first paragraph element chromedp.First(chromedp.ByTagName("p"), &firstParagraph), ) if err != nil { fmt.Println("error:", err) return }
fmt.Printf("Title: %s\n", title) fmt.Printf("First paragraph: %s\n", firstParagraph) } ```