
Ethan Collins
Pattern Recognition Specialist

Kotak centang "Bukan robot" berfungsi sebagai mekanisme pertahanan yang penting untuk melindungi situs web dari lalu lintas bot dan penyalahgunaan otomatis. Meskipun penting untuk keamanan, hal ini sering kali menjadi tantangan signifikan bagi operasi pengambilan data web yang sah. Kebutuhan akan solusi penyelesaian CAPTCHA yang efisien dan otomatis telah menjadi sangat penting bagi pengembang dan bisnis yang bergantung pada otomatisasi web.
Artikel ini membahas integrasi yang kuat antara Crawl4AI, crawler web yang canggih, dengan CapSolver, layanan penyelesaian CAPTCHA terkemuka, khususnya untuk menyelesaikan reCAPTCHA v2. Kami akan menjelajahi metode integrasi berbasis API dan berbasis ekstensi browser, memberikan contoh kode dan penjelasan rinci untuk membantu Anda mencapai pengumpulan data web yang mulus dan tanpa gangguan.
reCAPTCHA v2 memerlukan pengguna untuk mengklik kotak centang, dan terkadang menyelesaikan tantangan gambar, untuk membuktikan bahwa mereka manusia. Untuk sistem otomatis seperti crawler web, elemen interaktif ini menghentikan proses pengambilan data, membutuhkan intervensi manual atau teknik bypass yang canggih. Tanpa solusi yang efektif, pengumpulan data menjadi tidak efisien, tidak stabil, dan mahal.
CapSolver menawarkan solusi yang akurat tinggi dan respons cepat untuk reCAPTCHA v2 dengan memanfaatkan algoritma AI canggih. Ketika diintegrasikan dengan Crawl4AI, ini mengubah hambatan signifikan menjadi langkah otomatis yang mulus, memastikan tugas otomatisasi web Anda tetap lancar dan produktif.
💡 Bonus Eksklusif untuk Pengguna Integrasi Crawl4AI:
Untuk merayakan integrasi ini, kami menawarkan kode bonus 6% —CRAWL4bagi semua pengguna CapSolver yang mendaftar melalui tutorial ini.
Cukup masukkan kode tersebut saat melakukan recharge di Dashboard untuk menerima kredit tambahan 6% secara instan.
Metode integrasi API memberikan kontrol yang halus dan umumnya direkomendasikan karena fleksibilitas dan presisi yang tinggi. Ini melibatkan penggunaan fungsi js_code Crawl4AI untuk menyisipkan token CAPTCHA yang diperoleh dari CapSolver langsung ke halaman web target.
siteKey dan websiteURL untuk menerima token gRecaptchaResponse.js_code dalam CrawlerRunConfig Crawl4AI untuk menyisipkan token yang diperoleh ke elemen textarea g-recaptcha-response di halaman.Kode Python berikut menunjukkan cara mengintegrasikan API CapSolver dengan Crawl4AI untuk menyelesaikan reCAPTCHA v2. Contoh ini menargetkan halaman demo kotak centang reCAPTCHA v2.
import asyncio
import capsolver
from crawl4ai import *
# TODO: atur konfigurasi Anda
api_key = "CAP-xxxxxxxxxxxxxxxxxxxxx" # kunci API CapSolver Anda
site_key = "6LfW6wATAAAAAHLqO2pb8bDBahxlMxNdo9g947u9" # kunci situs dari situs target Anda
site_url = "https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php" # URL halaman target Anda
captcha_type = "ReCaptchaV2TaskProxyLess" # jenis CAPTCHA target Anda
capsolver.api_key = api_key
async def main():
browser_config = BrowserConfig(
verbose=True,
headless=False,
use_persistent_context=True,
)
async with AsyncWebCrawler(config=browser_config) as crawler:
await crawler.arun(
url=site_url,
cache_mode=CacheMode.BYPASS,
session_id="session_captcha_test"
)
# peroleh token reCAPTCHA menggunakan SDK CapSolver
solution = capsolver.solve({
"type": captcha_type,
"websiteURL": site_url,
"websiteKey": site_key,
})
token = solution["gRecaptchaResponse"]
print("token reCAPTCHA:", token)
js_code = """
const textarea = document.getElementById(\'g-recaptcha-response\');
if (textarea) {
textarea.value = \"""" + token + """\";
document.querySelector(\'button.form-field[type="submit"]\').click();
}
"""
wait_condition = """() => {
const items = document.querySelectorAll(\'h2\');
return items.length > 1;
}"""
run_config = CrawlerRunConfig(
cache_mode=CacheMode.BYPASS,
session_id="session_captcha_test",
js_code=js_code,
js_only=True,
wait_for=f"js:{wait_condition}"
)
result_next = await crawler.arun(
url=site_url,
config=run_config,
)
print(result_next.markdown)
if __name__ == "__main__":
asyncio.run(main())
Analisis Kode:
capsolver.solve dipanggil dengan tipe ReCaptchaV2TaskProxyLess, websiteURL, dan websiteKey untuk mendapatkan token gRecaptchaResponse. Token ini adalah solusi yang diberikan oleh CapSolver.js_code): String js_code berisi JavaScript yang mencari elemen textarea g-recaptcha-response di halaman dan menetapkan nilai token yang diperoleh ke properti value-nya. Selanjutnya, itu mensimulasikan klik pada tombol submit, memastikan formulir dikirim dengan token CAPTCHA yang valid.wait_for: Kondisi wait_condition didefinisikan untuk memastikan Crawl4AI menunggu elemen tertentu muncul di halaman, menunjukkan bahwa pengiriman berhasil dan halaman telah memuat konten baru.Untuk skenario di mana injeksi API langsung mungkin rumit atau kurang diinginkan, ekstensi browser CapSolver menawarkan alternatif. Metode ini memanfaatkan kemampuan ekstensi untuk secara otomatis mendeteksi dan menyelesaikan CAPTCHA dalam konteks browser yang dikelola oleh Crawl4AI.
user_data_dir: Konfigurasikan Crawl4AI untuk menjalankan instansi browser dengan direktori user_data_dir yang ditentukan untuk mempertahankan konteks yang tetap.apiKey dan manualSolving dalam file config.js ekstensi.manualSolving ekstensi, CAPTCHA akan diselesaikan secara otomatis setelah dideteksi, atau Anda dapat memicunya secara manual melalui JavaScript yang disisipkan.Contoh ini menunjukkan bagaimana Crawl4AI dapat dikonfigurasi untuk menggunakan profil browser dengan ekstensi CapSolver untuk penyelesaian reCAPTCHA v2 secara otomatis.
import asyncio
import time
from crawl4ai import *
# TODO: atur konfigurasi Anda
user_data_dir = "/browser-profile/Default1" # Pastikan jalur ini benar dan berisi ekstensi yang dikonfigurasi
browser_config = BrowserConfig(
verbose=True,
headless=False,
user_data_dir=user_data_dir,
use_persistent_context=True,
proxy="http://127.0.0.1:13120", # Opsional: konfigurasikan proxy jika diperlukan
)
async def main():
async with AsyncWebCrawler(config=browser_config) as crawler:
result_initial = await crawler.arun(
url="https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php",
cache_mode=CacheMode.BYPASS,
session_id="session_captcha_test"
)
# Ekstensi akan secara otomatis menyelesaikan CAPTCHA saat halaman dimuat.
# Anda mungkin perlu menambahkan kondisi menunggu atau time.sleep untuk memungkinkan ekstensi menyelesaikan CAPTCHA sebelum melanjutkan tindakan selanjutnya.
time.sleep(30) # Contoh menunggu, sesuaikan sesuai kebutuhan
# Lanjutkan dengan operasi Crawl4AI lainnya setelah CAPTCHA diselesaikan
# Sebagai contoh, periksa elemen yang muncul setelah pengiriman yang berhasil
# print(result_initial.markdown) # Anda dapat memeriksa konten halaman setelah menunggu
if __name__ == "__main__":
asyncio.run(main())
Analisis Kode:
user_data_dir: Parameter ini penting untuk Crawl4AI agar menjalankan instansi browser yang mempertahankan ekstensi CapSolver dan konfigurasinya. Pastikan jalur mengarah ke direktori profil browser yang valid di mana ekstensi telah dipasang.manualSolving diatur ke false (atau default) dalam konfigurasi ekstensi, ekstensi akan secara otomatis mendeteksi dan menyelesaikan reCAPTCHA v2 saat halaman dimuat. time.sleep ditambahkan sebagai contoh untuk memberi waktu ekstensi menyelesaikan CAPTCHA sebelum tindakan selanjutnya dilakukan.Jika Anda lebih suka memicu penyelesaian CAPTCHA secara manual pada titik tertentu dalam logika pengambilan data Anda, Anda dapat mengatur parameter manualSolving ekstensi ke true dan kemudian gunakan js_code untuk mengklik tombol solver yang disediakan oleh ekstensi.
import asyncio
import time
from crawl4ai import *
# TODO: atur konfigurasi Anda
user_data_dir = "/browser-profile/Default1" # Pastikan jalur ini benar dan berisi ekstensi yang dikonfigurasi
browser_config = BrowserConfig(
verbose=True,
headless=False,
user_data_dir=user_data_dir,
use_persistent_context=True,
proxy="http://127.0.0.1:13120", # Opsional: konfigurasikan proxy jika diperlukan
)
async def main():
async with AsyncWebCrawler(config=browser_config) as crawler:
result_initial = await crawler.arun(
url="https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php",
cache_mode=CacheMode.BYPASS,
session_id="session_captcha_test"
)
# Tunggu sejenak agar halaman dimuat dan ekstensi siap
time.sleep(6)
# Gunakan `js_code` untuk memicu tombol penyelesaian manual yang disediakan oleh ekstensi CapSolver
js_code = """
let solverButton = document.querySelector(\'#capsolver-solver-tip-button\');
if (solverButton) {
const clickEvent = new MouseEvent(\'click\', {
bubbles: true,
cancelable: true,
view: window
});
solverButton.dispatchEvent(clickEvent);
}
"""
print(js_code)
run_config = CrawlerRunConfig(
cache_mode=CacheMode.BYPASS,
session_id="session_captcha_test",
js_code=js_code,
js_only=True,
)
result_next = await crawler.arun(
url="https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php",
config=run_config
)
print("Hasil eksekusi JS:", result_next.js_execution_result)
# Beri waktu agar CAPTCHA diselesaikan setelah pemicu manual
time.sleep(30) # Contoh menunggu, sesuaikan sesuai kebutuhan
# Lanjutkan dengan operasi Crawl4AI lainnya
if __name__ == "__main__":
asyncio.run(main())
Analisis Kode:
manualSolving: Sebelum menjalankan kode ini, pastikan file config.js ekstensi CapSolver memiliki manualSolving diatur ke true.js_code mensimulasikan event klik pada #capsolver-solver-tip-button, yang merupakan tombol yang disediakan oleh ekstensi CapSolver untuk penyelesaian manual. Ini memberi Anda kontrol tepat saat proses penyelesaian CAPTCHA dimulai.Integrasi Crawl4AI dengan CapSolver memberikan solusi yang kuat dan fleksibel untuk melewati reCAPTCHA v2, secara signifikan meningkatkan efisiensi dan keandalan operasi pengambilan data web. Baik Anda memilih kontrol yang tepat dari integrasi API atau setup yang disederhanakan dari integrasi ekstensi browser, kedua metode ini memastikan reCAPTCHA v2 tidak lagi menjadi penghalang bagi tujuan pengumpulan data Anda.
Dengan otomatisasi penyelesaian CAPTCHA, pengembang dapat fokus pada pengambilan data yang bernilai, yakin bahwa crawler mereka dapat melalui situs web yang dilindungi secara mulus. Sinergi antara kemampuan crawling canggih Crawl4AI dan teknologi penyelesaian CAPTCHA yang kuat dari CapSolver menandai langkah maju signifikan dalam ekstraksi data web otomatis.
Mengalami kesalahan "reCAPTCHA Kunci Situs Tidak Valid" atau "token reCAPTCHA tidak valid"? Temukan penyebab umum, perbaikan langkah demi langkah, dan tips pemecahan masalah untuk menyelesaikan masalah verifikasi reCAPTCHA gagal. Pelajari cara memperbaiki verifikasi reCAPTCHA gagal, silakan coba lagi.

Pelajari cara menyelesaikan reCAPTCHA v2 dengan Python dan API. Panduan lengkap ini mencakup metode Proxy dan Proxyless dengan kode yang siap produksi untuk otomatisasi.
