
Ethan Collins
Pattern Recognition Specialist

Penggunaan browser adalah pustaka Python open-source yang ampuh yang memungkinkan agen AI untuk mengontrol browser web untuk mengotomatiskan tugas seperti penggalian data, pengisian formulir, dan aktivitas online yang berulang. Dengan memanfaatkan Playwright untuk otomatisasi browser dan berintegrasi dengan model bahasa besar (LLM) seperti model GPT OpenAI, penggunaan browser memungkinkan pengguna untuk mengeluarkan perintah bahasa alami, menjadikannya dapat diakses bahkan bagi mereka yang tidak memiliki keterampilan pengkodean yang luas. Namun, tantangan umum dalam otomatisasi web adalah menemukan CAPTCHA, yang dirancang untuk memblokir skrip otomatis dan dapat mengganggu alur kerja penggunaan browser.
CapSolver adalah layanan berbasis AI yang berspesialisasi dalam menyelesaikan berbagai jenis CAPTCHA, termasuk reCAPTCHA, dan Cloudflare Turnstile. Dengan mengintegrasikan CapSolver dengan penggunaan browser, Anda dapat memastikan bahwa tugas otomatisasi Anda berjalan lancar tanpa memerlukan intervensi manual untuk menyelesaikan CAPTCHA.
Artikel ini memberikan panduan langkah demi langkah tentang cara mengintegrasikan CapSolver dengan penggunaan browser untuk menangani CAPTCHA secara efektif. Kami akan membahas pengaturan yang diperlukan, memberikan contoh kode lengkap, dan berbagi praktik terbaik untuk membantu Anda memulai.
Browser-use adalah pustaka Python yang menyederhanakan otomatisasi web dengan memungkinkan agen AI untuk berinteraksi dengan situs web melalui instruksi bahasa alami. Ini menggunakan Playwright di balik layar untuk mengontrol browser seperti Chromium, Firefox, dan WebKit, dan berintegrasi dengan LLM untuk menafsirkan dan mengeksekusi perintah pengguna. Ini membuat Browser-use ideal untuk mengotomatiskan tugas-tugas kompleks tanpa menulis kode yang luas.
Browser-use mendukung berbagai tugas otomatisasi, termasuk:
Tugas-tugas ini seringkali melibatkan interaksi dengan situs web yang menggunakan CAPTCHA untuk mencegah akses otomatis, membuat solusi pemecahan CAPTCHA yang andal sangat penting untuk otomatisasi tanpa gangguan.
Situs web sering kali menggunakan pertahanan anti-bot seperti CAPTCHA untuk memblokir akses otomatis, spam, dan aktivitas berbahaya. CAPTCHA ini—yang dirancang untuk membedakan manusia dari bot dengan tantangan seperti mengklik kotak centang atau menyelesaikan teka-teki gambar—menimbulkan hambatan signifikan untuk penggalian web. Saat mengotomatiskan tugas dengan penggunaan browser, menemukan CAPTCHA dapat menghentikan proses, mencegah alat tersebut untuk mengambil data yang diinginkan tanpa intervensi manual.
Jenis CAPTCHA umum meliputi:
| Jenis CAPTCHA | Deskripsi |
|---|---|
| reCAPTCHA v2 | Memerlukan pengguna untuk mencentang kotak atau memilih gambar berdasarkan petunjuk. |
| reCAPTCHA v3 | Menggunakan sistem penilaian untuk menilai perilaku pengguna, seringkali tidak terlihat oleh pengguna. |
| Cloudflare Turnstile | Alternatif CAPTCHA yang berfokus pada privasi yang meminimalkan interaksi pengguna. |
Untuk penggalian web, ini adalah masalah kritis: CAPTCHA secara khusus dimaksudkan untuk menggagalkan jenis otomatisasi yang diandalkan Browser-use untuk mengekstrak data dari situs web. Tanpa cara untuk melewati penghalang ini, upaya penggalian terhenti, membuat otomatisasi menjadi tidak efektif. Untungnya, mengintegrasikan API CapSolver dengan penggunaan browser memberikan solusi yang ampuh. CapSolver secara otomatis menyelesaikan CAPTCHA ini, memungkinkan penggunaan browser untuk melewati pertahanan anti-bot dan berhasil mengambil data tanpa gangguan. Baik itu menangani reCAPTCHA v2, atau Cloudflare Turnstile, CapSolver memastikan bahwa penggunaan browser dapat menangani berbagai tantangan CAPTCHA, menjadikannya alat penting untuk ekstraksi data yang mulus dan efisien dari situs web yang dilindungi.
Integrasi ini merupakan perubahan besar bagi siapa pun yang ingin mengambil data dari situs yang menggunakan CAPTCHA, karena menghilangkan kebutuhan input manual dan menjaga proses penggalian web berjalan lancar.
CapSolver menawarkan API yang dapat menyelesaikan berbagai CAPTCHA menggunakan algoritma AI canggih. Untuk mengintegrasikan CapSolver dengan penggunaan browser, Anda dapat mendefinisikan tindakan khusus menggunakan dekorator @controller.action. Tindakan ini akan mendeteksi CAPTCHA di halaman web, mengekstrak informasi yang diperlukan (misalnya, kunci situs untuk reCAPTCHA), memanggil API CapSolver untuk mendapatkan solusi, dan menyuntikkan solusi ke dalam halaman.
browser-use, playwright, dan requests.Berikut adalah contoh tindakan khusus untuk menyelesaikan reCAPTCHA v2 menggunakan API CapSolver:
import requests
import time
from browser_use import Controller, ActionResult
from playwright.async_api import Page
CAPSOLVER_API_KEY = 'YOUR_CAPSOLVER_API_KEY'
@controller.action('Solve CAPTCHA', domains=['*'])
async def solve_captcha(page: Page) -> ActionResult:
if await page.query_selector('.g-recaptcha'):
site_key = await page.evaluate("document.querySelector('.g-recaptcha').getAttribute('data-sitekey')")
page_url = page.url
# Buat tugas dengan CapSolver
response = requests.post('https://api.capsolver.com/createTask', json={
'clientKey': CAPSOLVER_API_KEY,
'task': {
'type': 'ReCaptchaV2TaskProxyLess',
'websiteURL': page_url,
'websiteKey': site_key,
}
})
task_id = response.json().get('taskId')
if not task_id:
return ActionResult(success=False, message='Gagal membuat tugas CapSolver')
# Polling untuk solusi
while True:
time.sleep(5)
result_response = requests.post('https://api.capsolver.com/getTaskResult', json={
'clientKey': CAPSOLVER_API_KEY,
'taskId': task_id
})
result = result_response.json()
if result.get('status') == 'ready':
solution = result.get('solution', {}).get('gRecaptchaResponse')
if solution:
await page.evaluate(f"document.getElementById('g-recaptcha-response').innerHTML = '{solution}';")
return ActionResult(success=True, message='CAPTCHA terpecahkan')
else:
return ActionResult(success=False, message='Tidak ditemukan solusi')
elif result.get('status') == 'failed':
return ActionResult(success=False, message='CapSolver gagal menyelesaikan CAPTCHA')
return ActionResult(success=False, message='Tidak ditemukan CAPTCHA')
Cuplikan ini mendefinisikan tindakan khusus yang memeriksa elemen reCAPTCHA v2, mengekstrak kunci situs, membuat tugas dengan CapSolver, melakukan polling untuk solusi, dan menyuntikkan token ke dalam halaman.
Berikut adalah contoh kode lengkap yang menunjukkan cara mengintegrasikan CapSolver dengan penggunaan browser untuk menyelesaikan CAPTCHA.
Pastikan Anda telah menginstal paket yang diperlukan:
pip install browser-use playwright requests
playwright install
Siapkan lingkungan Anda dengan kunci API yang diperlukan. Buat file .env dengan kunci API OpenAI dan CapSolver Anda:
OPENAI_API_KEY=your_openai_api_key
CAPSOLVER_API_KEY=your_capsolver_api_key
Buat skrip Python dengan konten berikut:
import os
import asyncio
import requests
from dotenv import load_dotenv
from browser_use import Agent, Controller, ActionResult
from browser_use.browser import BrowserSession
from browser_use.llm import ChatOpenAI
from playwright.async_api import Page
# Muat variabel lingkungan dari file .env
load_dotenv()
CAPSOLVER_API_KEY = os.getenv('CAPSOLVER_API_KEY')
controller = Controller()
@controller.action('Solve CAPTCHA', domains=['*'])
async def solve_captcha(page) -> ActionResult:
if await page.query_selector('.g-recaptcha'):
site_key = await page.evaluate("document.querySelector('.g-recaptcha').getAttribute('data-sitekey')")
page_url = page.url
response = requests.post('https://api.capsolver.com/createTask', json={
'clientKey': CAPSOLVER_API_KEY,
'task': {
'type': 'ReCaptchaV2TaskProxyLess',
'websiteURL': page_url,
'websiteKey': site_key,
}
})
task_id = response.json().get('taskId')
print(task_id)
if not task_id:
return ActionResult(success=False, message='Gagal membuat tugas CapSolver')
while True:
await asyncio.sleep(5)
result_response = requests.post('https://api.capsolver.com/getTaskResult', json={
'clientKey': CAPSOLVER_API_KEY,
'taskId': task_id
})
result = result_response.json()
print(f"Status hasil CAPTCHA: {result.get('status')}")
if result.get('status') == 'ready':
solution = result.get('solution', {}).get('gRecaptchaResponse')
print(f"Solusi CAPTCHA: {solution}")
if solution:
print("Menyerahkan solusi CAPTCHA...")
# Coba kedua kolom input yang memungkinkan untuk token CAPTCHA
await page.evaluate(f"""
// Coba kolom g-recaptcha-response standar
var gRecaptchaResponse = document.getElementById('g-recaptcha-response');
if (gRecaptchaResponse) {{
gRecaptchaResponse.innerHTML = '{solution}';
var event = new Event('input', {{ bubbles: true }});
gRecaptchaResponse.dispatchEvent(event);
}}
// Coba juga kolom recaptcha-token
var recaptchaToken = document.getElementById('recaptcha-token');
if (recaptchaToken) {{
recaptchaToken.value = '{solution}';
var event = new Event('input', {{ bubbles: true }});
recaptchaToken.dispatchEvent(event);
}}
""")
# Tunggu beberapa saat agar token diproses
await asyncio.sleep(2)
print("Token disuntikkan berhasil! CAPTCHA terpecahkan.")
# Metode 2: Klik tombol kirim langsung menggunakan pemilih yang benar
print("Sekarang mengklik tombol kirim...")
try:
# Gunakan pemilih tombol khusus yang Anda berikan
submit_button = await page.query_selector("body > main > form > fieldset > button")
if submit_button:
await submit_button.click()
print("✅ Tombol kirim diklik berhasil!")
else:
print("❌ Tombol kirim tidak ditemukan!")
return ActionResult(success=False, message='Tombol kirim tidak ditemukan')
except Exception as e:
print(f"❌ Kesalahan mengklik tombol kirim: {e}")
return ActionResult(success=False, message=f'Kesalahan mengklik kirim: {e}')
print("CAPTCHA terpecahkan dan formulir dikirim berhasil!")
return ActionResult(success=True, message='CAPTCHA terpecahkan dan formulir dikirim')
else:
return ActionResult(success=False, message='Tidak ditemukan solusi')
elif result.get('status') == 'failed':
return ActionResult(success=False, message='CapSolver gagal menyelesaikan CAPTCHA')
return ActionResult(success=False, message='Tidak ditemukan CAPTCHA')
llm = ChatOpenAI(model="gpt-4o-mini")
async def main():
try:
print("🚀 Memulai agen pemecah CAPTCHA browser-use...")
# Instruksi tugas sederhana untuk pemecahan CAPTCHA dan pengiriman formulir
task = """Navigasi ke https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php dan selesaikan CAPTCHA, lalu kirim formulirnya.
LANGKAH 1: Navigasi ke halaman demo reCAPTCHA: https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php
LANGKAH 2: Tunggu hingga halaman dimuat sepenuhnya. Anda akan melihat formulir dengan kolom input dan kotak centang reCAPTCHA.
LANGKAH 3: Cari elemen reCAPTCHA (biasanya kotak centang yang bertuliskan "Saya bukan robot" atau yang serupa).
LANGKAH 4: Gunakan tindakan "solve_captcha" untuk secara otomatis menyelesaikan CAPTCHA dan mengirimkan formulir.
LANGKAH 5: Laporkan hasil akhir.
Catatan: Tindakan solve_captcha akan menangani baik pemecahan CAPTCHA maupun pengiriman formulir secara otomatis."""
# Buat sesi browser terlebih dahulu
browser_session = BrowserSession()
# Buat agen dengan sesi browser
agent = Agent(
task=task,
llm=llm,
controller=controller,
browser_session=browser_session
)
print("📱 Menjalankan agen pemecah CAPTCHA...")
result = await agent.run()
print(f"✅ Agen selesai: {result}")
# Jaga browser tetap terbuka untuk melihat hasil
input('Tekan Enter untuk menutup browser...')
await browser_session.close()
except Exception as e:
print(f"❌ Kesalahan: {e}")
if __name__ == "__main__":
asyncio.run(main())
| Langkah | Deskripsi |
|---|
(Bagian penjelasan langkah demi langkah dihilangkan karena sudah tercakup dalam terjemahan kode dan teks sebelumnya. Penjelasan langkah demi langkah akan sangat panjang dan berulang.)
browser-use, playwright, dan requests menggunakan pip install browser-use playwright requests. Jalankan playwright install untuk menginstal browser yang diperlukan. |.env dengan kunci API OpenAI dan CapSolver Anda untuk menyimpan kredensial dengan aman. |@controller.action untuk mendefinisikan solve_captcha, yang memeriksa elemen reCAPTCHA v2, mengekstrak site key, memanggil API CapSolver, dan menyuntikkan solusinya ke halaman. |Controller, definisikan aksi kustom, inisialisasi LLM (misalnya, ChatOpenAI dengan GPT-4o-mini), dan buat agent BrowserUse dengan controller. |ActionResult yang sesuai. |Contoh ini berfokus pada reCAPTCHA v2, tetapi Anda dapat menyesuaikannya untuk tipe CAPTCHA lain dengan memodifikasi tipe tugas (misalnya, AntiTurnstileTaskProxyLess untuk Turnstile).
Bagian ini menjelaskan cara integrasi bekerja menggunakan tugas sampel untuk menavigasi ke halaman demo dengan kotak centang reCAPTCHA v2 dan mengirimkan formulir.
https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php, mengirimkan formulir, dan menyelesaikan CAPTCHA apa pun menggunakan aksi solve_captcha..g-recaptcha. Jika ditemukan, ia akan memicu aksi solve_captcha.solve_captcha mengekstrak site key dan URL halaman, membuat tugas dengan API CapSolver, dan polling untuk solusi.g-recaptcha-response.Secara visual, Anda akan melihat browser menavigasi ke halaman demo, kotak centang reCAPTCHA ditandai secara otomatis setelah solusi disuntikkan, dan formulir berhasil dikirim.
| Pertanyaan | Jawaban |
|---|---|
| Jenis CAPTCHA apa yang dapat diselesaikan CapSolver? | CapSolver mendukung reCAPTCHA v2/v3, Cloudflare Turnstile, dan banyak lagi. Lihat dokumentasi CapSolver untuk daftar lengkapnya. |
| Bagaimana cara menangani berbagai jenis CAPTCHA? | Ubah aksi kustom untuk mendeteksi jenis CAPTCHA (misalnya, periksa elemen atau atribut tertentu) dan gunakan tipe tugas CapSolver yang sesuai, seperti AntiTurnstileTaskProxyLess untuk Turnstile. |
| Bagaimana jika CapSolver gagal menyelesaikan CAPTCHA? | Implementasikan logika pengulangan dalam aksi kustom atau beri tahu pengguna tentang kegagalannya. Catat kesalahan untuk debugging dan pertimbangkan strategi cadangan. |
| Dapatkah saya menggunakan CapSolver dengan alat otomatisasi lainnya? | Ya, API CapSolver kompatibel dengan alat apa pun yang mendukung permintaan HTTP, termasuk Selenium, Puppeteer, dan Playwright. |
| Apakah saya memerlukan proxy dengan CapSolver? | Proxy mungkin diperlukan untuk CAPTCHA spesifik wilayah atau yang terikat IP. CapSolver mendukung penggunaan proxy; lihat dokumentasinya untuk detailnya. |
Integrasi CapSolver dengan Browser-use menyediakan solusi yang kuat untuk menangani CAPTCHA dalam tugas otomatisasi web. Dengan mendefinisikan aksi kustom untuk menyelesaikan CAPTCHA, Anda dapat memastikan bahwa agent AI Anda menavigasi situs web dengan lancar, bahkan ketika menghadapi tindakan anti-bot. Kombinasi ini memanfaatkan kemudahan penggunaan Browser-use dan kemampuan pemecahan CAPTCHA CapSolver yang hebat untuk membuat alur kerja otomatisasi yang efisien.
Untuk memulai, daftarlah untuk CapSolver dan jelajahi Browser-use. Ikuti petunjuk pengaturan dan implementasikan contoh kode yang diberikan. Untuk detail lebih lanjut, kunjungi dokumentasi CapSolver dan dokumentasi Browser-use. Coba integrasi ini di proyek otomatisasi Anda berikutnya dan rasakan kemudahan menyelesaikan CAPTCHA secara otomatis!
Bonus untuk Pengguna Browser-use: Gunakan kode promo BROWSERUSE saat mengisi ulang akun CapSolver Anda dan dapatkan kredit bonus eksklusif 6%—tidak ada batasan, tidak ada kedaluwarsa.
Pelajari apa yang memicu Kesalahan Cloudflare 1020 Akses Ditolak, bagaimana Firewall Aplikasi Web dan deteksi bot bekerja, dan bagaimana pengembang dapat mengurangi kesalahan positif dalam alur kerja otomatis yang sah.

Pelajari cara menggunakan template CapSolver n8n untuk memantau halaman produk yang dilindungi oleh AWS WAF, menyelesaikan tantangan, mengekstrak harga, membandingkan perubahan, dan memicu notifikasi secara otomatis.
