chromedp
CycleTLS
Our great sponsors
chromedp | CycleTLS | |
---|---|---|
27 | 3 | |
10,341 | 786 | |
2.0% | - | |
5.5 | 6.7 | |
11 days ago | 12 days ago | |
Go | Go | |
MIT License | GNU General Public License v3.0 only |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
chromedp
- Web scraping with Go
-
Web Crawler in Go: Extracting Keyword-Relevant Text with Text Density
There are a billion things that you need to consider when building a decent web crawler, especially interacting with pages in the modern web. For example, a lot of content is dynamically loaded by the browser nowadays, and won't show up if you make a simple HTTP request. Open your browser devtools and look at the network tab after you make a request, and you'll see it makes loads of auxiliary requests. Some content is also only loaded after you interact with it (e.g. hover, click). For that reason I'd recommend using something like chromedp and do browser based crawling, even if it's much slower.
-
How can I do infinte scroll with go http
You could use something like the chrome dev tools (https://github.com/chromedp/chromedp) or look into JS runtimes in Go and try to handle the I/O yourself.
-
Web Automation: Don't Use Selenium, Use Playwright
Thanks. I've found Chromedp [0] to be a good Selenium replacement when programming in Go. Used in conjunction with HeadlessShell [1] you can deploy a Go app into a container and do the testing all within the same container with low overhead.
[0] https://github.com/chromedp/chromedp
-
Run single JS func in Go app
Is it node specific? Could you just use https://github.com/chromedp/chromedp and run it as an actually webpage and get the value from that?
-
Thoughts on Go headless browser tools for testing and scraping?
It looks like https://github.com/chromedp/chromedp is the most popular option. There's also https://github.com/playwright-community/playwright-go. Any thoughts or advice about using these tools?
- Is it possible to scrape a website protected by Cloudflare?
- Is there a library similar to HTMLUnit in GO?
-
Easiest way to MITM my browser requests/responses using Go
The alternative is to drive, for example, Chrome with the DevTools protocol (using something like https://github.com/chromedp/chromedp or https://github.com/raff/godet (this is my version of a DevTools driver).
- Web scraping libraries
CycleTLS
-
Is it possible to scrape a website protected by Cloudflare?
A lot of websites nowadays add fingerprint checking. So even if you fake the headers - it wouldn't help, as cloudflare still knows you are making request from go / python / whatever. So there is a lib to spoof fingerptint - https://github.com/Danny-Dasilva/CycleTLS . It may work for you .
- Curl’s TLS Fingerprint
-
Stack under attack: what we learned about handling DDoS attacks
While it can still be spoofed using several packages , e.g. https://github.com/Danny-Dasilva/CycleTLS it can still provide a meaningful/easy-to-manipulate signal.
Moreover, most bots conducting L7 DDoS don't use real/headless browsers in order to be able to scale their attack, so it's highly likely they'll have a discriminating/inconsistent TLS fingerprint.
This can also be done directly in Fastly using e.g. https://developer.fastly.com/reference/vcl/variables/client-...
Another approach to proactively flag malicious IPs is to scrape free proxies. Indeed, most DDoS leverage lot of cheap/know bad IPs. It's frequent to see these free proxies in these attacks.
What are some alternatives?
rod - A Devtools driver for web automation and scraping
gost - GO Simple Tunnel - a simple tunnel written in golang
go-selenium - Selenium WebDriver client for Go
go-cloudflare-scraper - A golang http.Transport layer that uses Otto to solve Cloudflare challenges
cdp - Package cdp provides type-safe bindings for the Chrome DevTools Protocol (CDP), written in the Go programming language.
mimic - Mimic chromium's HTTP/HTTP2 and TLS implementations.
playwright-go - Playwright for Go a browser automation library to control Chromium, Firefox and WebKit with a single API.
Ponzu - Headless CMS with automatic JSON API. Featuring auto-HTTPS from Let's Encrypt, HTTP/2 Server Push, and flexible server framework written in Go.
colly - Elegant Scraper and Crawler Framework for Golang
surf - Stateful programmatic web browsing in Go.
gomate.io - Behavior-driven development tool for GoLang