Cara mengintegrasikan Camoufox dengan CapSolver untuk menyelesaikan CAPTCHA yang mulus

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:
- Menghindari Deteksi Bot - Gunakan injeksi fingerprint Camoufox untuk terlihat sebagai browser yang sah
- Menyelesaikan CAPTCHA Secara Otomatis - Integrasikan API CapSolver untuk menangani tantangan CAPTCHA tanpa intervensi manual
- 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
# Instal paket Python
pip install -U camoufox[geoip]
# Unduh browser Camoufox
camoufox fetch
Penggunaan Dasar
python
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
- Daftar di capsolver.com
- Tambahkan dana ke akun Anda
- Dapatkan kunci API Anda dari dashboard
Bonus: Gunakan kode
CAMOUFOXsaat 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
pip install camoufox[geoip] httpx
Pola Integrasi Inti
python
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
- Unduh ekstensi CapSolver dari capsolver.com/en/extension
- Ekstrak file ekstensi
- Muat ke Camoufox:
python
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
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
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
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}');
}});
''')
print("reCAPTCHA v3 berhasil dihindari!")
if name == "main":
asyncio.run(main())
---
## 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
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
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
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-sitekeyatau elemencf-turnstile - reCAPTCHA: atribut
data-sitekeypada divg-recaptcha
Q: Apa yang harus saya lakukan jika penyelesaian CAPTCHA gagal?
A: Solusi umum:
- Verifikasi API key dan saldo Anda
- Pastikan site key benar
- Periksa apakah URL halaman sesuai dengan tempat CAPTCHA muncul
- Untuk v3, coba sesuaikan parameter action dan skor minimum
- 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

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.

Ethan Collins
16-Dec-2025

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.

Emma Foster
15-Dec-2025

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.

Aloísio Vítor
12-Dec-2025

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.

Ethan Collins
12-Dec-2025

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...

Ethan Collins
11-Dec-2025

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.

Nikolai Smirnov
09-Dec-2025

