
Ethan Collins
Pattern Recognition Specialist

reCAPTCHA v3, CAPTCHA yang tidak terlihat dan canggih dari Google, berjalan secara diam-diam di latar belakang, menganalisis perilaku pengguna untuk memberikan skor yang menunjukkan kemungkinan aktivitas bot. Berbeda dengan pendahulunya, reCAPTCHA v2, ini biasanya tidak menampilkan tantangan interaktif bagi pengguna. Meskipun ini meningkatkan pengalaman pengguna, hal ini menimbulkan kompleksitas baru untuk otomatisasi web dan pengambilan data, karena metode pengisian token tradisional seringkali tidak memadai atau mudah diubah.
Artikel ini memberikan panduan mendalam untuk mengintegrasikan Crawl4AI, crawler web yang kuat, dengan CapSolver, layanan penyelesaian CAPTCHA terkemuka, khususnya untuk menyelesaikan reCAPTCHA v3. Kami akan menjelajahi teknik canggih, termasuk solusi berbasis API dengan hooking fetch JavaScript dan integrasi ekstensi browser, untuk memastikan ekstraksi data web yang mulus dan andal bahkan dari situs yang dilindungi oleh reCAPTCHA v3.
reCAPTCHA v3 bekerja dengan mengembalikan skor (antara 0,0 dan 1,0) untuk setiap permintaan tanpa interaksi pengguna. Skor 0,0 menunjukkan kemungkinan tinggi aktivitas bot, sementara 1,0 menunjukkan pengguna manusia. Situs web kemudian menggunakan skor ini untuk memutuskan apakah mengizinkan tindakan, menampilkan tantangan, atau memblokir permintaan. Sifat tidak terlihat dari reCAPTCHA v3 berarti:
fetch atau XMLHttpRequest.Kemampuan AI canggih CapSolver sangat penting untuk mendapatkan token reCAPTCHA v3 yang valid dengan skor tinggi. Ketika dikombinasikan dengan kontrol browser yang kuat dari Crawl4AI, ini memungkinkan pengembang untuk mengatasi tantangan ini dan mempertahankan aliran data yang tidak terganggu.
💡 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 recharge di Dashboard untuk menerima kredit tambahan 6% secara instan.
Mengatasi reCAPTCHA v3 melalui integrasi API memerlukan pendekatan yang lebih canggih daripada v2, terutama karena sifatnya yang tidak terlihat dan verifikasi token dinamis. Strategi utama melibatkan mendapatkan token reCAPTCHA v3 dari CapSolver dan kemudian
hooking metode window.fetch di browser untuk mengganti token reCAPTCHA v3 asli dengan token yang diberikan oleh CapSolver pada saat verifikasi.
gRecaptchaResponse yang valid dan kemungkinan skor yang lebih tinggi.js_code dalam CrawlerRunConfig) yang mengganti metode window.fetch.fetch. Ketika permintaan yang menargetkan endpoint verifikasi reCAPTCHA v3 (misalnya, /recaptcha-v3-verify.php) terdeteksi, JavaScript mengubah permintaan untuk menyertakan token yang diberikan oleh CapSolver alih-alih token yang dihasilkan oleh halaman itu sendiri.Kode Python berikut menunjukkan teknik canggih ini untuk mengintegrasikan API CapSolver dengan Crawl4AI untuk menyelesaikan reCAPTCHA v3. Contoh ini menggunakan halaman demo reCAPTCHA v3.
import asyncio
import capsolver
from crawl4ai import *
# TODO: set your config
api_key = "CAP-xxxxxxxxxxxxxxxxxxxxx" # your api key of capsolver
site_key = "6LdKlZEpAAAAAAOQjzC2v_d36tWxCl6dWsozdSy9" # site key of your target site
site_url = "https://recaptcha-demo.appspot.com/recaptcha-v3-request-scores.php" # page url of your target site
page_action = "examples/v3scores" # page action of your target site
captcha_type = "ReCaptchaV3TaskProxyLess" # type of your target captcha
capsolver.api_key = api_key
async def main():
browser_config = BrowserConfig(
verbose=True,
headless=False,
use_persistent_context=True,
)
# get recaptcha token using capsolver sdk
solution = capsolver.solve({
"type": captcha_type,
"websiteURL": site_url,
"websiteKey": site_key,
"pageAction": page_action,
})
token = solution["gRecaptchaResponse"]
print("recaptcha token:", token)
async with AsyncWebCrawler(config=browser_config) as crawler:
await crawler.arun(
url=site_url,
cache_mode=CacheMode.BYPASS,
session_id="session_captcha_test"
)
js_code = """
const originalFetch = window.fetch;
window.fetch = function(...args) {
if (typeof args[0] === \'string\' && args[0].includes(\'/recaptcha-v3-verify.php\')) {
const url = new URL(args[0], window.location.origin);
url.searchParams.set(\'action\', \""" + token + """\");
args[0] = url.toString();
document.querySelector(\".token\").innerHTML = \"fetch(\\'/recaptcha-v3-verify.php?action=examples/v3scores&token="""+token+"""\')\";
console.log(\'Fetch URL hooked:\', args[0]);
}
return originalFetch.apply(this, args);
};
"""
wait_condition = """() => {
return document.querySelector(\".step3:not(.hidden)\");
}"""
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:
solve CapSolver: Metode capsolver.solve dipanggil dengan tipe ReCaptchaV3TaskProxyLess, websiteURL, websiteKey, dan pentingnya, pageAction. Parameter pageAction sangat krusial untuk reCAPTCHA v3 karena membantu CapSolver memahami konteks reCAPTCHA di halaman dan menghasilkan token yang lebih akurat.fetch JavaScript: js_code adalah inti dari solusi ini. Ini mendefinisikan ulang window.fetch. Ketika permintaan fetch dibuat ke /recaptcha-v3-verify.php, skrip menangkapnya, mengubah URL untuk menyertakan token yang diberikan oleh CapSolver dalam parameter action, dan kemudian memungkinkan fetch asli untuk berjalan. Ini memastikan server menerima token dengan skor tinggi dari CapSolver.wait_for: wait_condition memastikan Crawl4AI menunggu elemen tertentu (.step3:not(.hidden)) untuk muncul, menunjukkan bahwa proses verifikasi reCAPTCHA v3 telah berhasil diselesaikan dan halaman telah bergerak maju.Untuk reCAPTCHA v3, menggunakan ekstensi CapSolver dapat mempercepat proses integrasi, terutama ketika tujuannya adalah memanfaatkan kemampuan penyelesaian otomatis ekstensi. Ekstensi ini dirancang untuk mendeteksi dan menyelesaikan reCAPTCHA v3 di latar belakang, seringkali diaktifkan saat mengunjungi situs web.
user_data_dir untuk menjalankan instance browser yang mempertahankan ekstensi CapSolver yang terinstal.manualSolving harus false (atau default).Contoh ini menunjukkan cara mengonfigurasi Crawl4AI untuk menggunakan profil browser dengan ekstensi CapSolver untuk penyelesaian reCAPTCHA v3 otomatis. Kuncinya adalah memastikan ekstensi telah dikonfigurasi dengan benar di user_data_dir.
import asyncio
import time
from crawl4ai import *
# TODO: set your config
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-v3-request-scores.php", # Gunakan URL demo reCAPTCHA v3
cache_mode=CacheMode.BYPASS,
session_id="session_captcha_test"
)
# reCAPTCHA v3 biasanya diselesaikan secara otomatis oleh ekstensi saat halaman dimuat.
# Anda mungkin perlu menambahkan kondisi tunggu atau time.sleep untuk CAPTCHA diselesaikan
# sebelum melanjutkan tindakan lain yang bergantung pada token.
time.sleep(30) # Contoh tunggu, sesuaikan sesuai kebutuhan ekstensi untuk beroperasi
# Lanjutkan dengan operasi Crawl4AI lainnya setelah CAPTCHA diselesaikan
# Misalnya, periksa elemen atau konten yang muncul setelah verifikasi berhasil
# print(result_initial.markdown) # Anda dapat memeriksa konten halaman setelah tunggu
if __name__ == "__main__":
asyncio.run(main())
Analisis Kode:
user_data_dir: Sama seperti integrasi ekstensi reCAPTCHA v2, parameter ini kritis untuk Crawl4AI agar menggunakan profil browser dengan ekstensi CapSolver yang terinstal dan dikonfigurasi. Ekstensi akan menyelesaikan reCAPTCHA v3 secara otomatis.time.sleep ditambahkan sebagai contoh umum untuk memungkinkan ekstensi menyelesaikan operasi latar belakangnya. Untuk solusi yang lebih andal, pertimbangkan penggunaan fungsi wait_for Crawl4AI untuk memeriksa perubahan halaman tertentu yang menunjukkan penyelesaian reCAPTCHA v3 yang berhasil.Menyelesaikan reCAPTCHA v3 dalam pengambilan data web memerlukan pendekatan yang canggih, mengingat sifatnya yang tidak terlihat dan mekanisme verifikasi dinamis. Integrasi Crawl4AI dengan CapSolver memberikan alat kuat untuk mengatasi tantangan ini. Baik melalui kontrol presisi dari integrasi API dengan hooking fetch JavaScript atau otomatisasi yang disederhanakan yang ditawarkan oleh ekstensi browser, pengembang dapat memastikan operasi pengambilan data mereka tetap efisien dan tidak terganggu.
Dengan memanfaatkan kemampuan penyelesaian reCAPTCHA v3 yang akurat tinggi dari CapSolver dan kontrol browser canggih dari Crawl4AI, Anda dapat mempertahankan tingkat keberhasilan tinggi dalam ekstraksi data dari situs web yang dilindungi oleh CAPTCHA ini. Sinergi ini memungkinkan pengembang untuk membangun sistem pengumpulan data web otomatis yang lebih kuat dan andal.
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.
