MCPcopy Index your code
hub / github.com/RomainMichau/cloudscraper_go

github.com/RomainMichau/cloudscraper_go @v0.4.2

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.4.2 ↗ · + Follow
12 symbols 19 edges 2 files 1 documented · 8% updated 4mo ago★ 85
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

CloudScraper Go

Simple go module to bypass CloudFlare securities

For now only passive checks based on TLS footprint (JA3) and user agents are handled
Inspired of python project https://github.com/venomous/cloudscraper

Rely on CycleTls to customize JA3

JA3 list: https://raw.githubusercontent.com/trisulnsm/trisul-scripts/master/lua/frontend_scripts/reassembly/ja3/prints/ja3fingerprint.json

Get my JA3: https://kawayiyi.com/tls

Example of usage

Simple Post

package main

import (
    "github.com/RomainMichau/cloudscraper_go/cloudscraper"
)

func main() {

    client, _ := cloudscraper.Init(false, false)
    res, _ := client.Post("https://www.facebook.com/anything/", make(map[string]string), "")
    res2, _ := client.Get("https://www.facebook.com/anything/", make(map[string]string), "")
    print(res.Body)
    print(res2.Body)
}

Customize request

package main

import (
    "github.com/Danny-Dasilva/CycleTLS/cycletls"
    "github.com/RomainMichau/cloudscraper_go/cloudscraper"
)

func main() {

    client, _ := cloudscraper.Init(false, false)
    options := cycletls.Options{
        Headers:         map[string]string{"my_custom_header": "header_value"},
        Body:            "",
        Proxy:           "proxy.company.com",
        Timeout:         10,
        DisableRedirect: true,
    }
    res, _ := client.Do("https://www.facebook.com/anything", options, "PUT")
    print(res.Body)
}

Async Request

package main

import (
    "github.com/Danny-Dasilva/CycleTLS/cycletls"
    "github.com/RomainMichau/cloudscraper_go/cloudscraper"
)

func main() {

    client, _ := cloudscraper.Init(false, true)
    options := cycletls.Options{
        Headers:         map[string]string{"my_custom_header": "header_value"},
        Body:            "",
        Timeout:         10,
        DisableRedirect: true,
    }
    client.Queue("https://www.facebook.com/anything", options, "PUT")
    respChannel := client.RespChan()
    res := <-respChannel
    print(res.Body)
}

Todo

  • Bypass cloudflare active counter-measure (JS challenge) as done on python cloudscraper

Core symbols most depended-on inside this repo

Do
called by 2
cloudscraper/client.go
readJsonFile
called by 1
cloudscraper/browsers.go
getUserAgents
called by 1
cloudscraper/browsers.go
Queue
called by 0
cloudscraper/client.go
Get
called by 0
cloudscraper/client.go
Post
called by 0
cloudscraper/client.go
RespChan
called by 0
cloudscraper/client.go
Init
called by 0
cloudscraper/client.go

Shape

Method 5
Struct 4
Function 3

Languages

Go100%

Modules by API surface

cloudscraper/client.go7 symbols
cloudscraper/browsers.go5 symbols

For agents

$ claude mcp add cloudscraper_go \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page