CAPSOLVER
Blog
Cara Mengintegrasikan Camoufox dengan CapSolver untuk Pemecahan CAPTCHA yang Lancar

Cara mengintegrasikan Camoufox dengan CapSolver untuk menyelesaikan CAPTCHA yang mulus

Logo of CapSolver

Ethan Collins

Pattern Recognition Specialist

16-Dec-2025

TL;DR: Gunakan Camoufox untuk menghindari pemindaian fingerprint browser dan CapSolver untuk menyelesaikan CAPTCHA secara otomatis seperti Cloudflare Turnstile dan reCAPTCHA v2/v3. Bersama-sama, mereka memungkinkan otomatisasi web yang stabil dan mirip manusia dengan deteksi minimal dan tingkat keberhasilan tinggi.

Pendahuluan

Otomatisasi web telah menjadi penting untuk pengumpulan data, pengujian, dan berbagai operasi bisnis. Namun, situs web modern menerapkan langkah anti-bot yang canggih dan CAPTCHA yang dapat menghentikan bahkan skrip otomatisasi yang dirancang dengan hati-hati.

Kombinasi Camoufox dan CapSolver memberikan solusi kuat untuk tantangan ini:

  • Camoufox: Browser anti-detect open-source yang dibangun berdasarkan Firefox yang menghindari deteksi bot melalui pemalsuan fingerprint yang canggih
  • CapSolver: Layanan penyelesaian CAPTCHA yang didukung AI yang menangani Cloudflare Turnstile, reCAPTCHA, dan lainnya

Bersama, alat-alat ini memungkinkan otomatisasi web yang mulus yang melewati deteksi fingerprint dan tantangan CAPTCHA.

Tujuan Integrasi

Panduan ini akan membantu Anda mencapai tiga tujuan inti:

  1. Menghindari Deteksi Bot - Gunakan injeksi fingerprint Camoufox untuk terlihat sebagai browser yang sah
  2. Menyelesaikan CAPTCHA Secara Otomatis - Integrasikan API CapSolver untuk menangani tantangan CAPTCHA tanpa intervensi manual
  3. Memelihara Perilaku Mirip Manusia - Gabungkan gerakan kursor yang dihumanisasi dengan penyelesaian CAPTCHA yang cerdas

Apa itu Camoufox?

Camoufox adalah versi kustom yang stealthy dan minimalis dari Firefox yang dirancang khusus untuk scraping web dan otomatisasi. Berbeda dengan solusi anti-detect lain yang bergantung pada injeksi JavaScript (yang dapat terdeteksi), Camoufox menerapkan pemalsuan fingerprint pada tingkat C++ di dalam browser itu sendiri.

Fitur Utama

  • Injeksi Fingerprint - Memalsukan properti navigator, dimensi layar, WebGL, WebRTC, font, dan lainnya pada tingkat asli
  • Gerakan Kursor Mirip Manusia - Algoritma humanisasi kursor yang terintegrasi untuk interaksi yang realistis
  • Integrasi BrowserForge - Menghasilkan fingerprint yang meniru distribusi perangkat dunia nyata
  • Dukungan GeoIP - Menghitung zona waktu, lokal, dan geolokasi secara otomatis berdasarkan IP proxy
  • Dukungan Add-on Firefox - Memuat ekstensi kustom termasuk pemblokir iklan

Instalasi

bash Copy
# Instal paket Python
pip install -U camoufox[geoip]

# Unduh browser Camoufox
camoufox fetch

Penggunaan Dasar

python Copy
from camoufox.sync_api import Camoufox

with Camoufox(humanize=True) as browser:
    page = browser.new_page()
    page.goto("https://example.com")

Apa itu CapSolver?

CapSolver adalah layanan penyelesaian CAPTCHA otomatis yang didukung AI yang mendukung berbagai jenis CAPTCHA. Layanan ini menyediakan API sederhana yang memungkinkan Anda mengirim tantangan CAPTCHA dan menerima solusi dalam hitungan detik.

Jenis CAPTCHA yang Didukung

  • Cloudflare Turnstile - Tantangan anti-bot yang paling umum saat ini
  • reCAPTCHA v2 - Versi berbasis gambar dan tidak terlihat
  • reCAPTCHA v3 - Verifikasi berbasis skor
  • AWS WAF - CAPTCHA dari Amazon Web Services
  • Dan banyak lainnya...

Mulai dengan CapSolver

  1. Daftar di capsolver.com
  2. Tambahkan dana ke akun Anda
  3. Dapatkan kunci API Anda dari dashboard

Bonus: Gunakan kode CAMOUFOX saat mendaftar untuk mendapatkan kredit bonus!


Tantangan Sebelum Integrasi

Sebelum menggabungkan Camoufox dengan CapSolver, otomatisasi web menghadapi beberapa masalah:

Tantangan Dampak
Deteksi fingerprint browser Skrip diblokir sebelum mencapai konten
Tantangan CAPTCHA Memerlukan penyelesaian manual, menghentikan otomatisasi
Sistem reputasi IP Proxy cepat ditandai dan dilarang
Analisis perilaku Pola non-manusia terdeteksi

Integrasi Camoufox + CapSolver menyelesaikan semua tantangan ini dalam satu alur kerja.


Metode Integrasi

Metode 1: Integrasi API (Direkomendasikan)

Pendekatan integrasi API memberi Anda kontrol penuh terhadap proses penyelesaian CAPTCHA dan berfungsi dengan semua jenis CAPTCHA.

Persyaratan Setup

bash Copy
pip install camoufox[geoip] httpx

Pola Integrasi Inti

python Copy
import asyncio
import httpx
from camoufox.async_api import AsyncCamoufox

CAPSOLVER_API_KEY = "KUNCI_API_ANDA"
CAPSOLVER_API = "https://api.capsolver.com"


async def create_task(task_payload: dict) -> str:
    """Membuat tugas penyelesaian CAPTCHA dan mengembalikan ID tugas."""
    async with httpx.AsyncClient() as client:
        response = await client.post(
            f"{CAPSOLVER_API}/createTask",
            json={
                "clientKey": CAPSOLVER_API_KEY,
                "task": task_payload
            }
        )
        result = response.json()
        if result.get("errorId") != 0:
            raise Exception(f"Kesalahan CapSolver: {result.get('errorDescription')}")
        return result["taskId"]


async def get_task_result(task_id: str, max_attempts: int = 120) -> dict:
    """Memantau hasil tugas hingga selesai atau timeout."""
    async with httpx.AsyncClient() as client:
        for _ in range(max_attempts):
            response = await client.post(
                f"{CAPSOLVER_API}/getTaskResult",
                json={
                    "clientKey": CAPSOLVER_API_KEY,
                    "taskId": task_id
                }
            )
            result = response.json()

            if result.get("status") == "ready":
                return result["solution"]
            elif result.get("status") == "failed":
                raise Exception(f"Tugas gagal: {result.get('errorDescription')}")

            await asyncio.sleep(1)

    raise TimeoutError("Penyelesaian CAPTCHA melebihi waktu yang diberikan")


async def solve_captcha(task_payload: dict) -> dict:
    """Menyelesaikan alur kerja CAPTCHA."""
    task_id = await create_task(task_payload)
    return await get_task_result(task_id)

Metode 2: Ekstensi Browser

Anda juga dapat menggunakan ekstensi CapSolver dengan Camoufox untuk pendekatan yang lebih sederhana.

Langkah Instalasi

  1. Unduh ekstensi CapSolver dari capsolver.com/en/extension
  2. Ekstrak file ekstensi
  3. Muat ke Camoufox:
python Copy
from camoufox.sync_api import Camoufox

with Camoufox(
    addons=["/path/to/capsolver-extension"],
    headless=False  # Ekstensi memerlukan mode yang terlihat
) as browser:
    page = browser.new_page()
    # Ekstensi akan secara otomatis mendeteksi dan menyelesaikan CAPTCHA

Contoh Kode

Contoh 1: Menyelesaikan Cloudflare Turnstile

Cloudflare Turnstile adalah salah satu tantangan CAPTCHA yang paling umum. Berikut cara menyelesaikannya:

python Copy
import asyncio
from camoufox.async_api import AsyncCamoufox

CAPSOLVER_API_KEY = "KUNCI_API_ANDA"
CAPSOLVER_API = "https://api.capsolver.com"


async def solve_turnstile(site_key: str, page_url: str) -> str:
    """Menyelesaikan Cloudflare Turnstile dan mengembalikan token."""
    import httpx

    async with httpx.AsyncClient() as client:
        # Membuat tugas
        response = await client.post(
            f"{CAPSOLVER_API}/createTask",
            json={
                "clientKey": CAPSOLVER_API_KEY,
                "task": {
                    "type": "AntiTurnstileTaskProxyLess",
                    "websiteURL": page_url,
                    "websiteKey": site_key,
                }
            }
        )
        task_id = response.json()["taskId"]

        # Memantau hasil
        while True:
            result = await client.post(
                f"{CAPSOLVER_API}/getTaskResult",
                json={
                    "clientKey": CAPSOLVER_API_KEY,
                    "taskId": task_id
                }
            )
            data = result.json()

            if data.get("status") == "ready":
                return data["solution"]["token"]

            await asyncio.sleep(1)


async def main():
    target_url = "https://example.com/protected-page"
    turnstile_site_key = "0x4XXXXXXXXXXXXXXXXX"  # Temukan ini di sumber halaman

    async with AsyncCamoufox(
        humanize=True,
        headless=False,
        os="windows"
    ) as browser:
        page = await browser.new_page()
        await page.goto(target_url)

        # Menunggu Turnstile dimuat
        await page.wait_for_selector('input[name="cf-turnstile-response"]', timeout=10000)

        # Menyelesaikan CAPTCHA
        token = await solve_turnstile(turnstile_site_key, target_url)
        print(f"Dapatkan token Turnstile: {token[:50]}...")

        # Menyuntikkan token
        await page.evaluate(f'''
            document.querySelector('input[name="cf-turnstile-response"]').value = "{token}";

            // Juga atur callback tersembunyi jika ada
            const callback = document.querySelector('[data-callback]');
            if (callback) {{
                const callbackName = callback.getAttribute('data-callback');
                if (window[callbackName]) {{
                    window[callbackName]('{token}');
                }}
            }}
        ''')

        # Mengirim formulir
        await page.click('button[type="submit"]')
        await page.wait_for_load_state("networkidle")

        print("Berhasil melewati Turnstile!")


if __name__ == "__main__":
    asyncio.run(main())

Contoh 2: Menyelesaikan reCAPTCHA v2

python Copy
import asyncio
from camoufox.async_api import AsyncCamoufox

CAPSOLVER_API_KEY = "KUNCI_API_ANDA"
CAPSOLVER_API = "https://api.capsolver.com"


async def solve_recaptcha_v2(site_key: str, page_url: str) -> str:
    """Menyelesaikan reCAPTCHA v2 dan mengembalikan token."""
    import httpx

    async with httpx.AsyncClient() as client:
        # Membuat tugas
        response = await client.post(
            f"{CAPSOLVER_API}/createTask",
            json={
                "clientKey": CAPSOLVER_API_KEY,
                "task": {
                    "type": "ReCaptchaV2TaskProxyLess",
                    "websiteURL": page_url,
                    "websiteKey": site_key,
                }
            }
        )
        result = response.json()

        if result.get("errorId") != 0:
            raise Exception(f"Kesalahan: {result.get('errorDescription')}")

        task_id = result["taskId"]

        # Memantau hasil
        while True:
            result = await client.post(
                f"{CAPSOLVER_API}/getTaskResult",
                json={
                    "clientKey": CAPSOLVER_API_KEY,
                    "taskId": task_id
                }
            )
            data = result.json()

            if data.get("status") == "ready":
                return data["solution"]["gRecaptchaResponse"]
            elif data.get("status") == "failed":
                raise Exception(f"Gagal: {data.get('errorDescription')}")

            await asyncio.sleep(2)


async def main():
    target_url = "https://example.com/login"
    recaptcha_site_key = "6LcXXXXXXXXXXXXXXXXXXXXXXXXX"  # Temukan di sumber halaman

    async with AsyncCamoufox(
        humanize=True,
        headless=False,
        os=["windows", "macos"]  # Pemilihan OS acak
    ) as browser:
        page = await browser.new_page()
        await page.goto(target_url)

        # Mengisi bidang formulir dengan jeda mirip manusia
        await page.fill('input[name="username"]', "user@example.com")
        await asyncio.sleep(0.5)  # Jeda mirip manusia
        await page.fill('input[name="password"]', "password123")

        # Menyelesaikan CAPTCHA
        print("Menyelesaikan reCAPTCHA v2...")
        token = await solve_recaptcha_v2(recaptcha_site_key, target_url)
        print(f"Dapatkan token: {token[:50]}...")

        # Menyuntikkan token ke bidang respons reCAPTCHA
        await page.evaluate(f'''
            document.getElementById('g-recaptcha-response').innerHTML = '{token}';
            document.getElementById('g-recaptcha-response').style.display = 'block';
        ''')

        # Mengirim formulir
        await page.click('button[type="submit"]')
        await page.wait_for_load_state("networkidle")

        print("Login berhasil!")


if __name__ == "__main__":
    asyncio.run(main())

Contoh 3: Menyelesaikan reCAPTCHA v3

reCAPTCHA v3 berbasis skor dan tidak memerlukan interaksi pengguna. Anda perlu menentukan parameter aksi.

python Copy
import asyncio
from camoufox.async_api import AsyncCamoufox

CAPSOLVER_API_KEY = "KUNCI_API_ANDA"
CAPSOLVER_API = "https://api.capsolver.com"


async def solve_recaptcha_v3(
    site_key: str,
    page_url: str,
    action: str = "verify",
    min_score: float = 0.7
) -> str:
    """Menyelesaikan reCAPTCHA v3 dengan aksi dan skor minimum yang ditentukan."""
    import httpx

    async with httpx.AsyncClient() as client:
        response = await client.post(
            f"{CAPSOLVER_API}/createTask",
            json={
                "clientKey": CAPSOLVER_API_KEY,
                "task": {
                    "type": "ReCaptchaV3TaskProxyLess",
                    "websiteURL": page_url,
                    "websiteKey": site_key,
                    "pageAction": action,
                    "minScore": min_score
                }
            }
        )
        result = response.json()

        if result.get("errorId") != 0:
            raise Exception(f"Kesalahan: {result.get('errorDescription')}")

        task_id = result["taskId"]

        while True:
            result = await client.post(
                f"{CAPSOLVER_API}/getTaskResult",
                json={
                    "clientKey": CAPSOLVER_API_KEY,
                    "taskId": task_id
                }
            )
            data = result.json()

            if data.get("status") == "ready":
                return data["solution"]["gRecaptchaResponse"]
            elif data.get("status") == "failed":
                raise Exception(f"Gagal: {data.get('errorDescription')}")

            await asyncio.sleep(1)


async def main():
    target_url = "https://example.com/search"
    recaptcha_v3_key = "6LcXXXXXXXXXXXXXXXXXXXXXXXXX"

    async with AsyncCamoufox(
        humanize=2.0,  # Gerakan kursor maksimal 2 detik
        headless=True,  # Bisa dijalankan dalam mode tanpa antarmuka untuk v3
        geoip=True,  # Deteksi geolokasi otomatis dari proxy
    ) as browser:
        page = await browser.new_page()
        await page.goto(target_url)

        # Menyelesaikan reCAPTCHA v3 dengan aksi "search"
        print("Menyelesaikan reCAPTCHA v3...")
        token = await solve_recaptcha_v3(
            recaptcha_v3_key,
            target_url,
            action="search",
            min_score=0.9  # Meminta skor tinggi
        )

        # Menjalankan callback dengan token
        await page.evaluate(f'''
            // Kirim token melalui callback situs

grecaptcha.execute('{recaptcha_v3_key}', {{action: 'search'}})
.then(function(tokenAsli) {{
// Ganti dengan token yang telah diselesaikan
kirimPencarian('{token}');
}});
''')

Copy
    print("reCAPTCHA v3 berhasil dihindari!")

if name == "main":
asyncio.run(main())

Copy
---

## Praktik Terbaik

### 1. Rotasi Proxy dengan GeoIP

Gunakan fitur GeoIP Camoufox untuk secara otomatis menyesuaikan sidik jari dengan lokasi proxy Anda:

```python
async with AsyncCamoufox(
    geoip=True,  # Deteksi otomatis dari IP proxy
    proxy={
        "server": "http://proxy.example.com:8080",
        "username": "user",
        "password": "pass"
    }
) as browser:
    # Sidik jari akan menyesuaikan lokasi geografis proxy
    pass

2. Konsistensi Sidik Jari

Jaga konsistensi sidik jari dalam satu sesi tetapi ganti antar sesi:

python Copy
from browserforge.fingerprints import Screen

# Batasi ke ukuran layar umum
screen = Screen(
    min_width=1280,
    max_width=1920,
    min_height=720,
    max_height=1080
)

async with AsyncCamoufox(
    os="windows",
    screen=screen,
) as browser:
    pass

3. Pembatasan Kecepatan

Hindari memicu pembatasan kecepatan dengan menambahkan jeda:

python Copy
import random

async def jeda_manusia():
    """Jeda acak untuk meniru perilaku manusia."""
    await asyncio.sleep(random.uniform(1.0, 3.0))

# Gunakan antara tindakan
await page.click('button')
await jeda_manusia()
await page.fill('input', 'text')

4. Penanganan Kesalahan

Selalu implementasikan penanganan kesalahan yang tepat untuk penyelesaian CAPTCHA:

python Copy
async def selesaikan_dengan_pengulangan(payload_tugas: dict, maks_pengulangan: int = 3) -> dict:
    """Selesaikan CAPTCHA dengan logika pengulangan."""
    for percobaan in range(maks_pengulangan):
        try:
            return await selesaikan_captcha(payload_tugas)
        except TimeoutError:
            if percobaan < maks_pengulangan - 1:
                print(f"Timeout, mencoba lagi... ({percobaan + 1}/{maks_pengulangan})")
                await asyncio.sleep(5)
            else:
                raise
        except Exception as e:
            if "saldo" in str(e).lower():
                raise  # Jangan ulangi kesalahan saldo
            if percobaan < maks_pengulangan - 1:
                await asyncio.sleep(2)
            else:
                raise

Bonus: Mulai Hari Ini!

Siap mempercepat otomatisasi web Anda dengan Camoufox dan CapSolver?

Gunakan kode CAMOUFOX saat mendaftar di CapSolver untuk mendapatkan kredit tambahan!

Bonus eksklusif ini membantu Anda memulai penyelesaian CAPTCHA langsung.


Kesimpulan

Integrasi Camoufox dan CapSolver menciptakan alat yang kuat untuk otomatisasi web:

  • Camoufox menangani deteksi bot dengan penyamaran sidik jari tingkat sistem
  • CapSolver menangani CAPTCHA dengan penyelesaian berbasis AI
  • Bersama-sama mereka memungkinkan otomatisasi yang mulus dan terlihat sepenuhnya manusia

Baik Anda membangun web scraper, sistem pengujian otomatis, atau pipeline pengumpulan data, kombinasi ini memberikan keandalan dan ketahanan yang Anda butuhkan.


FAQ

Q: Tipe CAPTCHA apa yang paling baik bekerja dengan integrasi ini?

A: CapSolver mendukung semua tipe CAPTCHA utama. Cloudflare Turnstile dan reCAPTCHA v2/v3 memiliki tingkat keberhasilan tertinggi. Integrasi ini berjalan mulus dengan semua CAPTCHA yang didukung oleh CapSolver.

Q: Bisakah saya menggunakan ini dalam mode headless?

A: Ya! Camoufox mendukung mode headless dan tetap mempertahankan kemampuan penyamaran sidik jari. Untuk reCAPTCHA v3 dan CAPTCHA berbasis token, mode headless berjalan sempurna. Untuk CAPTCHA v2 yang terlihat, mode headed mungkin memberikan hasil yang lebih baik.

Q: Bagaimana cara menemukan site key untuk CAPTCHA?

A: Cari di sumber halaman untuk:

  • Turnstile: atribut data-sitekey atau elemen cf-turnstile
  • reCAPTCHA: atribut data-sitekey pada div g-recaptcha

Q: Apa yang harus saya lakukan jika penyelesaian CAPTCHA gagal?

A: Solusi umum:

  1. Verifikasi API key dan saldo Anda
  2. Pastikan site key benar
  3. Periksa apakah URL halaman sesuai dengan tempat CAPTCHA muncul
  4. Untuk v3, coba sesuaikan parameter action dan skor minimum
  5. Implementasikan logika pengulangan dengan jeda

Q: Apakah Camoufox bekerja dengan Selenium?

A: Camoufox dibangun di sekitar Playwright, bukan Selenium. Namun, Anda dapat menggunakan pola integrasi API CapSolver yang sama dengan kerangka kerja otomatisasi browser apa pun.

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

Relevance AI dengan CapSolver
Cara menyelesaikan reCAPTCHA v2 di Relevance AI dengan Integrasi CapSolver

Kembangkan alat Relevance AI untuk menyelesaikan reCAPTCHA v2 menggunakan CapSolver. Otomatisasi pengajuan formulir melalui API tanpa otomatisasi browser.

web scraping
Logo of CapSolver

Ethan Collins

03-Feb-2026

Larangan IP pada 2026: Bagaimana Cara Kerjanya dan Cara Praktis untuk Menghindarinya
Larangan IP pada 2026: Bagaimana Cara Kerjanya dan Cara Praktis untuk Mengelaknya

Pelajari cara menghindari pembatasan IP pada 2026 dengan panduan lengkap kami. Temukan teknik pemblokiran IP modern dan solusi praktis seperti proxy residensial dan solver CAPTCHA.

web scraping
Logo of CapSolver

Emma Foster

26-Jan-2026

Maxun dengan Integrasi CapSolver
Cara Menyelesaikan Captcha di Maxun dengan Integrasi CapSolver

Panduan praktis untuk mengintegrasikan CapSolver dengan Maxun dalam penggunaan nyata pengambilan data web. Pelajari cara mengelola reCAPTCHA, Cloudflare Turnstile, dan situs yang dilindungi CAPTCHA dengan menggunakan alur kerja pre-auth dan robot.

web scraping
Logo of CapSolver

Adélia Cruz

21-Jan-2026

Browser4 dengan Integrasi CapSolver
Cara menyelesaikan Captcha di Browser4 dengan integrasi CapSolver

Otomasi Browser4 dengan throughput tinggi dikombinasikan dengan CapSolver untuk menangani tantangan CAPTCHA dalam ekstraksi data web skala besar.

web scraping
Logo of CapSolver

Anh Tuan

21-Jan-2026

Apa Itu Bot Scraping dan Cara Membuatnya
Apa itu Bot Scraping dan Bagaimana Cara Membuatnya

Pelajari apa itu bot scraping dan cara membuatnya untuk ekstraksi data otomatis. Jelajahi alat terbaik, teknik navigasi keamanan, dan praktik scraping yang etis.

web scraping
Logo of CapSolver

Emma Foster

16-Jan-2026

Scrapy vs. Selenium
Scrapy vs. Selenium: Mana yang Terbaik untuk Proyek Scraping Web Anda?

Temukan kekuatan dan perbedaan antara Scrapy dan Selenium untuk pengambilan data web. Pelajari alat mana yang paling sesuai dengan proyek Anda dan cara mengatasi tantangan seperti CAPTCHA.

web scraping
Logo of CapSolver

Emma Foster

14-Jan-2026