Skip to content

undetected-chromedrivervschromedp

GPL-3.0 1143 5 12,519
1.1 million (month) Sep 04 2020 3.5.5(2024-02-17 17:18:36 ago)
12,937 6 172 MIT
May 10 2021 58.1 thousand (month) chromedp(2026-04-01 00:05:30 ago)

Undetected chromedriver is custom open source headless browser driver based on Selenium. It extends Selenium headless browsers to be more ressistant to fingeprinting and identification techniquest like: - Cloudflare - Datadome - Imperva And other similar WAF anti-bot systems.

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.

Highlights


stealthseleniumheadless-browser

Example Use


```python # It works the same as Selenium just with a different import. import undetected_chromedriver as uc driver = uc.Chrome(headless=True, use_subprocess=False) driver.get('https://nowsecure.nl') driver.save_screenshot('screenshot.png') driver.close() ```
```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) } ```

Alternatives / Similar


Was this page helpful?