CAPSOLVER
Blog
Cara Mengatasi Cloudflare Saat Web Scraping pada 2024 | Panduan Langkah Demi Langkah

Cara Menyelesaikan Cloudflare Saat Web Scraping pada Tahun 2026 | Panduan Langkah demi Langkah

Logo of CapSolver

Anh Tuan

Data Science Expert

09-Dec-2025

Kode Status Umum Cloudflare Saat Melakukan WebScraping

Kesalahan 1020

Kesalahan Cloudflare 1020 menunjukkan bahwa akses ditolak. Kesalahan ini dipicu ketika aturan firewall situs web yang dilindungi oleh Cloudflare dilanggar. Berbagai tindakan, seperti membuat permintaan berlebihan ke situs, dapat menyebabkan pelanggaran ini.

Cara umum untuk memperbaiki masalah ini:

  • Gunakan proxy yang berputar untuk menyembunyikan alamat IP Anda.
  • Ubah dan putar header User-Agent.
  • Pastikan klien HTTP Anda mendukung TLS jika menggunakan perpustakaan requests.
  • Gunakan alat otomasi browser seperti Puppeteer, Playwright, atau Selenium.

Kesalahan 1015 / 429 batas permintaan

Kesalahan Cloudflare 1015 terjadi ketika alamat IP Anda ditandai dan dilarang oleh Cloudflare karena melebihi batas permintaan situs selama aktivitas scraping. Ini dapat menyebabkan Anda menghadapi kesalahan ini.
Cara umum untuk memperbaiki masalah ini:

  • Gunakan proxy yang berputar atau pool proxy yang besar
  • Pastikan situs web tidak dapat melacak Anda melalui header Anda, beberapa header bisa membuat mereka melacak Anda dan membatasi permintaan Anda
  • Pastikan Anda tidak terdeteksi melalui fingerprint TLS, TCP, atau cara lainnya.

Kesalahan 403

Kode status 403 adalah respons "Dilarang", yang dikeluarkan oleh server ketika ia mengakui permintaan sebagai valid tetapi menolak untuk memenuhinya. Ini bisa terjadi karena header yang diperlukan dalam permintaan Anda hilang, seperti header CORS, JWT, atau autentikasi yang diharapkan oleh server.

Jika situs web umumnya dapat diakses dan menambahkan header yang benar tidak memecahkan masalah, kemungkinan besar server mendeteksi permintaan Anda sebagai otomatis.
Cara umum untuk memperbaiki masalah ini:

  • Anda tidak mengirim header yang benar, informasi permintaan.
  • Proxy telah dilarang
  • Perlu menyelesaikan tantangan javascript, periksa blog tentang Cloudflare Challenge 5s untuk memahami cara menyelesaikannya
  • Situs web tidak mengizinkan semua lalu lintas

Tukarkan Kode Bonus CapSolver Anda

Tingkatkan anggaran otomasi Anda secara instan!
Gunakan kode bonus CAPN saat menambahkan dana ke akun CapSolver Anda untuk mendapatkan tambahan 5% bonus pada setiap recharge — tanpa batas.
Tukarkan sekarang di CapSolver Dashboard
.

Identifikasi Cloudflare Challenge 5s dan Cloudflare Turnstile Captcha

Cloudflare Challenge 5s

Cloudflare challenge terlihat seperti:

Terkadang, halaman ini bisa memiliki turnstile

Pastikan Anda perlu menyelesaikan Cloudflare Challenge 5s dan bukan hanya turnstile, untuk hanya turnstile, silakan terus membaca blog ini.

Ada beberapa persyaratan saat menyelesaikan tantangan ini menggunakan Capsolver.

  • Proxy
  • Kunci API Capsolver

Mengirim informasi tugas ke Capsolver

json Copy
POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json

{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "AntiCloudflareTask",
    "websiteURL": "https://www.yourwebsite.com",
    "proxy": "158.120.100.23:334:user:pass"
  }
}

Setelah mengirim dengan benar, API akan mengembalikan taskId

json Copy
{
    "errorId": 0,
    "taskId": "014fc55c-46c9-41c8-9de7-6cb35d984edc",
    "status": "idle"
}

Dapatkan nilai taskId ini dan gunakan untuk mengambil hasil menggunakan metode getTaskResult

Mengambil hasil

json Copy
POST https://api.capsolver.com/getTaskResult
Host: api.capsolver.com
Content-Type: application/json

{
  "clientKey": "YOUR_API_KEY",
  "taskId": "taskId"
}

Tergantung pada beban sistem, Anda akan mendapatkan hasil dalam rentang 1s hingga 20s

Jika Anda menerima ERROR_CAPTCHA_SOLVE_FAILED dalam respons, bisa ada beberapa alasan:

  • Proxy Anda tidak perlu menyelesaikan Cloudflare Challenge 5s (Beberapa situs hanya mengaktifkan untuk proxy yang buruk, tindakan bot atau apa pun yang bisa memicu bahwa permintaan dibuat oleh bot). Kadang-kadang diaktifkan setiap saat, tergantung konfigurasinya.
  • Proxy Anda dilarang oleh Cloudflare dan sedang dalam loop yang tidak bisa melewati tantangan
  • Situs web tidak menggunakan Cloudflare Challenge, pastikan itu adalah tantangan dan bukan turnstile, periksa gambar contoh.
  • Proxy memberikan timeout, ini umum ketika menggunakan Residential Proxy

Jika Anda menerima respons sukses, akan terlihat seperti:

json Copy
{
    "errorId": 0,
    "taskId": "d8d3a8b4-30cc-4b09-802a-a476ca17fa54",
    "status": "ready",
    "solution": {
        "accept-language": "en-US,en;q=0.9",
        "cookies": {

        },
        "headers": {
            "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
            "accept-encoding": "gzip, deflate, br",
            "accept-language": "en-US,en;q=0.9",
            "cache-control": "max-age=0",
            "content-type": "application/x-www-form-urlencoded",
            "origin": "",
            "referer": "",
            "sec-ch-ua": "\"Not_A Brand\";v=\"8\", \"Chromium\";v=\"120\", \"Google Chrome\";v=\"120\"",
            "sec-ch-ua-arch": "\"arm\"",
            "sec-ch-ua-bitness": "\"64\"",
            "sec-ch-ua-full-version": "\"120.0.6099.71\"",
            "sec-ch-ua-full-version-list": "\"Not_A Brand\";v=\"8.0.0.0\", \"Chromium\";v=\"120.0.6099.71\", \"Google Chrome\";v=\"120.0.6099.71\"",
            "sec-ch-ua-mobile": "?0",
            "sec-ch-ua-model": "\"\"",
            "sec-ch-ua-platform": "\"macOS\"",
            "sec-ch-ua-platform-version": "\"10.14.6\"",
            "sec-fetch-dest": "document",
            "sec-fetch-mode": "navigate",
            "sec-fetch-site": "same-origin",
            "sec-fetch-user": "?1",
            "upgrade-insecure-requests": "1",
            "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
        },
        "proxy": "your proxy",
        "token": "cf clearance token",
        "type": "challenge",
        "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
    }
}

Dari respons ini, Anda perlu memproses nilai cookies, headers, token.

Permintaan Anda harus terlihat seperti:

  • Header permintaan harus sama dengan yang kami kembalikan untuk Anda
  • Cookies permintaan harus sama dengan yang kami kembalikan untuk Anda
  • Klien permintaan harus mendukung pengaturan TLS, dalam hal ini gunakan TLS Chrome 120
  • Gunakan proxy yang sama untuk berinteraksi di situs web dan untuk menggunakan kuki cf_clearance
  • Nilai token akan menjadi nilai kuki cf_clearance yang perlu Anda buat

Contoh untuk menyelesaikan Cloudflare Challenge dengan Python

python Copy
# -*- coding: utf-8 -*-
import requests
import time
import tls_client

# TODO: Kunci API Anda
API_KEY = ""
proxy = ""

# TODO: URL situs target:
page_url = ''



def call_capsolver():
    data = {
        "clientKey": API_KEY,
        "task": {
            "type": 'AntiCloudflareTask',
            "websiteURL": page_url,
            "proxy": proxy,
        }
    }
    uri = 'https://api.capsolver.com/createTask'
    res = requests.post(uri, json=data)
    resp = res.json()
    task_id = resp.get('taskId')
    if not task_id:
        print("tidak mendapatkan taskId:", res.text)
        return
    print('created taskId:', task_id)

    while True:
        time.sleep(1)
        data = {
            "clientKey": API_KEY,
            "taskId": task_id
        }
        response = requests.post('https://api.capsolver.com/getTaskResult', json=data)
        resp = response.json()
        status = resp.get('status', '')
        if status == "ready":
            print("berhasil => ", response.text)
            return resp.get('solution')
        if status == "failed" or resp.get("errorId"):
            print("gagal! => ", response.text)
            return


def request_site(solution):
    session = tls_client.Session(
        client_identifier="chrome_120",
        random_tls_extension_order=True
    )
    return session.get(
        page_url,
        headers=solution.get('headers'),
        cookies=solution.get('cookies'),
        proxy=proxy,
    )


def main():
    solution = {
        "headers": {
            "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
            "upgrade-insecure-requests": "1",
            "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
            "sec-fetch-site": "none",
            "sec-fetch-mode": "navigate",
            "sec-fetch-user": "?1",
            "sec-fetch-dest": "document",
            "accept-encoding": "gzip, deflate, br",
            "accept-language": "en-US,en;q=0.9",
        }
    }
    # permintaan pertama (periksa proxy Anda):
    res = request_site(solution)
    print('1. kode status respons:', res.status_code)
    if res.status_code != 403:
        print("proxy Anda baik dan tidak mendapatkan tantangan Cloudflare")
        return
    elif 'window._cf_chl_opt' not in res.text:
        print('==== proxy diblokir ==== ')
        return

    # panggil capSolver:
    solution = call_capsolver()
    if not solution:
        return

    # permintaan kedua (verifikasi solusi):
    res = request_site(solution)
    print('2. kode status respons:', res.status_code)


if __name__ == '__main__':
    main()

Cloudflare Turnstile Captcha

Cloudflare Turnstile Captcha terlihat seperti:

  • Tantangan yang dikelola

  • Tantangan non-aktif

  • Tantangan yang tidak terlihat
    tidak terlihat, Anda bisa memeriksa di jaringan / skrip yang dimuat dan lihat apakah turnstile digunakan

Pastikan Anda perlu menyelesaikan Cloudflare Turnstile Captcha dan bukan Cloudflare Challenge 5s, untuk hanya Cloudflare Challenge, silakan terus membaca blog ini.

Ada beberapa persyaratan saat menyelesaikan tantangan ini menggunakan Capsolver.

  • Kunci API Capsolver

Mengirim informasi tugas ke Capsolver

json Copy
POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json

{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "AntiTurnstileTaskProxyLess",
    "websiteURL": "https://www.yourwebsite.com",
    "websiteKey": "0x4XXXXXXXXXXXXXXXXX",
    "metadata": {
       "action": "login",  //opsional
       "cdata": "0000-1111-2222-3333-example-cdata"  //opsional
    }
  }
}

"action" dan "cdata" opsional, kadang diperlukan dan kadang tidak.
Tergantung pada konfigurasi situs web.
action adalah nilai atribut data-action dari elemen Turnstile jika ada.
cdata adalah nilai atribut data-cdata dari elemen Turnstile jika ada.
Setelah mengirim dengan benar, API akan mengembalikan taskId

json Copy
{
    "errorId": 0,
    "taskId": "014fc55c-46c9-41c8-9de7-6cb35d984edc",
    "status": "idle"
}

Dapatkan nilai taskId ini dan gunakan untuk mengambil hasil menggunakan metode getTaskResult

Mengambil hasil

json Copy
POST https://api.capsolver.com/getTaskResult
Host: api.capsolver.com
Content-Type: application/json

{
  "clientKey": "YOUR_API_KEY",
  "taskId": "taskId"
}

Tergantung pada beban sistem, Anda akan mendapatkan hasil dalam rentang 1s hingga 20s

Jika Anda menerima ERROR_CAPTCHA_SOLVE_FAILED dalam respons, bisa ada beberapa alasan:

  • Proxy Anda tidak perlu menyelesaikan Cloudflare Challenge 5s (Beberapa situs hanya mengaktifkan untuk proxy yang buruk, tindakan bot atau apa pun yang bisa memicu bahwa permintaan dibuat oleh bot). Kadang-kadang diaktifkan setiap saat, tergantung konfigurasinya.
  • Proxy Anda dilarang oleh Cloudflare dan sedang dalam loop yang tidak bisa melewati tantangan
  • Situs web tidak menggunakan Cloudflare Challenge, pastikan itu adalah tantangan dan bukan turnstile, periksa gambar contoh.
  • Proxy memberikan timeout, ini umum ketika menggunakan Residential Proxy

Jika Anda menerima respons sukses, akan terlihat seperti:

json Copy
{
    "errorId": 0,
    "taskId": "d1e1487a-2cd8-4d4a-aa4d-4ba5b6c65484",
    "status": "ready",
    "solution": {
        "token": "0.cZJPqwnyDxL86HvAXSk4lUTQhjwfyXDcR3qpVwFofuzosoKr1otKj_A-utazXx_Tnp1B2V6womrltBpRw9HbY851ktpaF7sBN-gQwtoRUew4Wj5PO4-WLYPnNRpXxludXzyQ.1oHJhu7619fb8c07ab942bd1587bc76e0e3cef95c7aa75400c4f7d3",
        "type": "turnstile",
        "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
    }
}

Dari respons ini, Anda perlu memproses nilai token dan ini akan menjadi solusi captcha yang perlu Anda kirim ke situs web.

Contoh untuk menyelesaikan Cloudflare Challenge dengan Python

python Copy
import time
from curl_cffi import requests

CAPSOLVER_API_KEY = "Kunci API CAPSOLVER.COM Anda"
PAGE_URL = ""
WEBSITE_KEY = ""

def solvecf(metadata_action=None, metadata_cdata=None):
    url = "https://api.capsolver.com/createTask"
    task = {
        "type": "AntiTurnstileTaskProxyLess",
        "websiteURL": PAGE_URL,
        "websiteKey": WEBSITE_KEY,
    }
    if metadata_action or metadata_cdata:
        task["metadata"] = {}
        if metadata_action:
            task["metadata"]["action"] = metadata_action
        if metadata_cdata:
            task["metadata"]["cdata"] = metadata_cdata
    data = {
        "clientKey": CAPSOLVER_API_KEY,
        "task": task
    }
    response_data = requests.post(url, json=data).json()
    print(response_data)
    return response_data['taskId']


def solutionGet(taskId):
    url = "https://api.capsolver.com/getTaskResult"
    status = ""
    while status != "ready":
        data = {"clientKey": CAPSOLVER_API_KEY, "taskId": taskId}
        response_data = requests.post(url, json=data).json()
        print(response_data)
        status = response_data.get('status', '')
        print(status)
        if status == "ready":
            return response_data['solution']

        time.sleep(2)


def main():
    start_time = time.time()
    
    taskId = solvecf()
    solution = solutionGet(taskId)
    if solution:
        user_agent = solution['userAgent']
        token = solution['token']

    print("User_Agent:", user_agent)
print("Captcha Turnstile berhasil diselesaikan, token:", token)

    end_time = time.time()
    elapsed_time = end_time - start_time
    print(f"Waktu untuk menyelesaikan captcha: {elapsed_time} detik")

if __name__ == "__main__":
    main()

Contoh untuk menyelesaikan tantangan Cloudflare dengan NodeJS

js Copy
const axios = require('axios');

const CAPSOLVER_API_KEY = "";
const PAGE_URL = "";
const WEBSITE_KEY = "";

async function solvecf(metadata_action = null, metadata_cdata = null) {
    const url = "https://api.capsolver.com/createTask";
    const task = {
        type: "AntiTurnstileTaskProxyLess",
        websiteURL: PAGE_URL,
        websiteKey: WEBSITE_KEY,
    };
    if (metadata_action || metadata_cdata) {
        task.metadata = {};
        if (metadata_action) {
            task.metadata.action = metadata_action;
        }
        if (metadata_cdata) {
            task.metadata.cdata = metadata_cdata;
        }
    }
    const data = {
        clientKey: CAPSOLVER_API_KEY,
        task: task
    };
    const response = await axios.post(url, data);
    console.log(response.data);
    return response.data.taskId;
}

async function solutionGet(taskId) {
    const url = "https://api.capsolver.com/getTaskResult";
    let status = "";
    while (status !== "ready") {
        const data = { clientKey: CAPSOLVER_API_KEY, taskId: taskId };
        const response = await axios.post(url, data);
        console.log(response.data);
        status = response.data.status;
        console.log(status);
        if (status === "ready") {
            return response.data.solution;
        }
        await new Promise(resolve => setTimeout(resolve, 2000));
    }
}

async function main() {
    const start_time = Date.now();
    
    const taskId = await solvecf();
    const solution = await solutionGet(taskId);
    if (solution) {
        const user_agent = solution.userAgent;
        const token = solution.token;

        console.log("User_Agent:", user_agent);
        console.log("Captcha Turnstile berhasil diselesaikan, token:", token);
    }

    const end_time = Date.now();
    const elapsed_time = (end_time - start_time) / 1000;
    console.log(`Waktu untuk menyelesaikan captcha: ${elapsed_time} detik`);
}

main().catch(console.error);

🏁 Kesimpulan

Cloudflare menerapkan berbagai mekanisme perlindungan — dari blok HTTP standar seperti 1020, 403, 429 (1015) hingga tantangan yang lebih canggih seperti Tantangan Cloudflare 5 detik dan Captcha Turnstile. Saat melakukan scraping web atau otomatisasi, mengidentifikasi mekanisme perlindungan yang aktif adalah langkah pertama yang penting.

Panduan ini menjelaskan kode status Cloudflare yang umum, cara membedakan Tantangan 5 detik vs Captcha Turnstile, dan memberikan contoh kerja untuk menyelesaikannya menggunakan Capsolver API, termasuk implementasi Python & NodeJS.

Dengan memilih pendekatan yang tepat — proxy yang berputar, header yang tepat, perlindungan fingerprint, atau menyelesaikan CAPTCHA/Tantangan secara programatis — Anda dapat meningkatkan signifikansi tingkat keberhasilan scraping dan mengurangi pemblokiran.

Jika permintaan Anda masih ditandai sebagai terlarang, audit pengaturan scraper Anda: kualitas proxy, header, fingerprint TLS, dan frekuensi permintaan seringkali sepenting dengan solver CAPTCHA itu sendiri.


❓ Pertanyaan yang Sering Diajukan (FAQ)

1. Bagaimana cara saya tahu apakah saya menghadapi Tantangan Cloudflare 5 detik atau Captcha Turnstile?

Periksa antarmuka pengguna atau permintaan jaringan.

  • Jika halaman "Verifying your browser..." 5 detik muncul → Tantangan 5 detik
  • Jika widget dengan verifikasi muncul (atau generasi token yang tidak terlihat) → Captcha Turnstile

2. Mengapa saya masih diblokir bahkan setelah menyelesaikan tantangan?

Alasan mungkin:

  • Proxy yang digunakan telah diblokir atau berkualitas rendah
  • Header yang hilang atau salah saat menggunakan solusi
  • Tidak mempertahankan proxy yang sama selama permintaan
  • Ketidakcocokan fingerprint TLS

3. Apakah saya selalu memerlukan proxy saat menyelesaikan Cloudflare?

  • Tantangan 5 detik memerlukan proxy
  • Captcha Turnstile bisa tanpa proxy, tetapi proxy bisa membantu melewati pembatasan di situs yang sensitif

4. Bisakah saya mengotomasi penyelesaian Cloudflare secara skala?

Ya. Dengan proxy yang baik, fingerprint yang berubah, dan logika penggunaan token kembali, Anda dapat mengembangkan scraping — pastikan kepatuhan terhadap ketentuan situs web dan persyaratan hukum setempat.

5. Apakah Captcha Turnstile lebih sulit diselesaikan dibanding Tantangan 5 detik?

Captcha Turnstile biasanya lebih mudah karena biasanya mengembalikan satu token. Tantangan 5 detik memerlukan cookies, header, dan konsistensi proxy, sehingga lebih kompleks.

Pernyataan Kepatuhan: Informasi yang diberikan di blog ini hanya untuk tujuan informasi. CapSolver berkomitmen untuk mematuhi semua hukum dan peraturan yang berlaku. Penggunaan jaringan CapSolver untuk kegiatan ilegal, penipuan, atau penyalahgunaan sangat dilarang dan akan diselidiki. Solusi penyelesaian captcha kami meningkatkan pengalaman pengguna sambil memastikan kepatuhan 100% dalam membantu menyelesaikan kesulitan captcha selama pengambilan data publik. Kami mendorong penggunaan layanan kami secara bertanggung jawab. Untuk informasi lebih lanjut, silakan kunjungi Syarat Layanan dan Kebijakan Privasi.

Lebih lanjut

Cara melewati verifikasi Cloudflare bahwa Anda manusia tanpa terjebak
Cara melewati verifikasi Cloudflare bahwa Anda manusia tanpa terjebak

Terjebak pada "memverifikasi bahwa Anda manusia" atau "Cloudflare Challenge"? Pelajari penyebab umum dan temukan solusi teknis untuk sistem otomatis agar melewati verifikasi setiap kali.

Cloudflare
Logo of CapSolver

Rajinder Singh

20-Jan-2026

Memahami Kesalahan Cloudflare 1010 dan Cara Mengatasinya
Memahami Kesalahan Cloudflare 1010 dan Cara Mengatasinya

Pelajari cara menyelesaikan kesalahan Cloudflare 1010, yang umumnya dikenal sebagai "Akses Ditolak: Bot Buruk." Pahami penyebab di balik kesalahan ini dan temukan solusi praktis, termasuk integrasi CapSolver, untuk menghindari pemeriksaan keamanan Cloudflare dan memastikan akses yang mulus ke situs web.

Cloudflare
Logo of CapSolver

Nikolai Smirnov

04-Jan-2026

Cara mengidentifikasi apakah cData diperlukan untuk menyelesaikan Cloudflare Turnstile menggunakan Ekstensi CapSolver
Cara mengidentifikasi apakah cData diperlukan untuk menyelesaikan Cloudflare Turnstile dengan Ekstensi CapSolver

Pelajari cara mengidentifikasi cData untuk Cloudflare Turnstile dalam penyelesaian captcha yang efektif. Ikuti panduan langkah demi langkah kami tentang menggunakan alat dan teknik Capsolver.

Cloudflare
Logo of CapSolver

Ethan Collins

31-Dec-2025

Selesaikan Cloudflare Turnstile
Cara mengatasi Cloudflare Turnstile?

Selesaikan Cloudflare Turnstile secara efisien menggunakan API CapSolver. Pelajari cara membuat tugas, mengelola proxy, dan mengambil hasil dengan cepat untuk interaksi web yang lebih halus.

Cloudflare
Logo of CapSolver

Anh Tuan

24-Dec-2025

Selesaikan Cloudflare
Cara menyelesaikan tantangan Cloudflare?

Pelajari cara menyelesaikan tantangan Cloudflare dengan API Capsolver: Panduan langkah demi langkah tentang pembuatan tugas dan pengambilan hasil, dengan dukungan Python dan lainnya

Cloudflare
Logo of CapSolver

Nikolai Smirnov

23-Dec-2025

Cara menyelesaikan Tantangan Cloudflare dengan Python
Cara menyelesaikan Tantangan Cloudflare dengan Python

Dalam artikel ini, kami akan menunjukkan kepada Anda cara menyelesaikan tantangan Cloudflare dengan Python.

Cloudflare
Logo of CapSolver

Aloísio Vítor

19-Dec-2025