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"]', "[email protected]")
        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

Alur kerja penyelesaian CAPTCHA Camoufox dan CapSolver
Cara mengintegrasikan Camoufox dengan CapSolver untuk menyelesaikan CAPTCHA yang mulus

Pelajari cara mengintegrasikan Camoufox dengan CapSolver untuk melewati Cloudflare Turnstile dan reCAPTCHA secara andal dan dalam skala besar.

web scraping
Logo of CapSolver

Ethan Collins

16-Dec-2025

.Cara Menyelesaikan CAPTCHA dengan Python Menggunakan Botasaurus dan CapSolver (Panduan Lengkap)
Cara Menyelesaikan CAPTCHAs dengan Python Menggunakan Botasaurus dan CapSolver (Panduan Lengkap)

Pelajari cara mengintegrasikan Botasaurus (kerangka kerja pengambilan data web Python) dengan API CapSolver untuk menyelesaikan reCAPTCHA v2/v3 dan Turnstile secara otomatis.

web scraping
Logo of CapSolver

Emma Foster

15-Dec-2025

kesalahan pengambilan data web
Apa itu Kesalahan 402, 403, 404, dan 429 dalam Web Scraping? Panduan Lengkap

Menguasai penanganan kesalahan web scraping dengan memahami apa yang merupakan kesalahan 402, 403, 404, dan 429. Belajar cara memperbaiki kesalahan 403 Dilarang, menerapkan solusi pembatasan laju untuk kesalahan 429, dan menangani kode status 402 Pembayaran Diperlukan yang baru muncul.

web scraping
Logo of CapSolver

Aloísio Vítor

12-Dec-2025

Pengambilan Data Web Dengan Python
Web Scraping Dengan Python: 2026 Taktik Terbaik

Pelajari taktik pengambilan data web Python teratas untuk 2026, termasuk menangani konten JavaScript dinamis, mengelola alur otentikasi, menyelesaikan CAPTCHA, mengidentifikasi perangkap tersembunyi, meniru perilaku manusia, mengoptimalkan pola permintaan, dan mengurangi penggunaan sumber daya dalam proyek pengambilan data web skala besar.

web scraping
Logo of CapSolver

Ethan Collins

12-Dec-2025

Menyelesaikan CAPTCHA web scraping
Pengambilan Data Web Tanpa Terblokir dan Cara Mengatasi Captcha Web Scraping

Scrapping web telah menjadi teknik yang populer untuk mengekstrak data dari situs web. Namun, banyak situs web menggunakan langkah anti-scrapping, termasuk...

web scraping
Logo of CapSolver

Ethan Collins

11-Dec-2025

Penelusuran Web dan Pengambilan Data Web
Penjelajahan Web vs. Pengambilan Data Web: Perbedaan Essensial

Ketahui perbedaan penting antara web crawling dan web scraping. Pelajari tujuan mereka yang berbeda, 10 penggunaan kasus yang kuat, dan bagaimana CapSolver membantu melewati blok AWS WAF dan CAPTCHA untuk pengumpulan data yang mulus.

web scraping
Logo of CapSolver

Nikolai Smirnov

09-Dec-2025