Halaman ini membantu tim Selenium mengintegrasikan penyelesaian captcha dengan alur kerja yang stabil dan dapat diulang untuk jalur pengujian dan otomatisasi.
Death By Captcha (DBC) memungkinkan skrip Selenium memecahkan tantangan captcha melalui API alih-alih interaksi manual: skrip Anda mengekstrak parameter tantangan dari halaman, meminta solusi dari DBC, menyuntikkan hasil kembali ke halaman, dan melanjutkan alur. Halaman ini adalah quickstart: instalasi, contoh kode yang dapat dijalankan, dan catatan tugas yang didukung.
Python:
pip install selenium deathbycaptcha-official
Gunakan kredensial akun DBC Anda di klien. Buat akun dan periksa harga dan saldo sebelum menjalankan alur.
import json
import os
import time
import deathbycaptcha
from selenium import webdriver
from selenium.webdriver.common.by import By
USERNAME = os.getenv('DBC_USERNAME')
PASSWORD = os.getenv('DBC_PASSWORD')
DEMO_URL = 'https://www.google.com/recaptcha/api2/demo'
def solve_recaptcha_v2(driver):
# 1. extract the challenge parameters from the page
sitekey = driver.find_element(By.ID, 'recaptcha-demo').get_attribute('data-sitekey')
token_params = json.dumps({'googlekey': sitekey, 'pageurl': DEMO_URL})
client = deathbycaptcha.SocketClient(USERNAME, PASSWORD)
if client.get_balance() <= 0:
raise SystemExit('No balance - top up before solving.')
# 2. request the solution token from DBC (type 4 = reCAPTCHA v2 token)
result = client.decode(type=4, token_params=token_params)
return result['text'] if result else None
driver = webdriver.Firefox()
driver.get(DEMO_URL)
token = solve_recaptcha_v2(driver)
if not token:
print('No solution yet - retry with backoff')
raise SystemExit(1)
# 3. inject the token back into the page
driver.execute_script("document.getElementById('g-recaptcha-response').value = arguments[0]", token)
# 4. submit and wait for the success element
driver.find_element(By.ID, 'recaptcha-demo-submit').click()
time.sleep(2)
print(driver.find_element(By.CLASS_NAME, 'recaptcha-success').text)
driver.quit()
Versi lengkap yang dapat dijalankan: examples/deathbycaptcha-python-selenium di repositori resmi klien Python
| Membutuhkan | konteks Selenium | jalur DBC |
|---|---|---|
| Alur kerja token yang stabil | Penanganan deterministik dalam proses otomatisasi berulang. | Aliran token berbasis API dengan percobaan ulang/batas waktu yang eksplisit. |
| Ketik cakupan | Proyek yang berbeda mempunyai kelas tantangan yang berbeda. | Gunakan titik akhir tipe spesifik dan validasi setiap skenario secara terpisah. |
| Dukungan operasional | Masalah produksi memerlukan diagnosis cepat. | Dukungan dan keandalan muncul untuk eskalasi dan perencanaan. |
| Topik | Catatan |
|---|---|
| Jenis captcha (API) | reCAPTCHA v2 dan v3, Cloudflare Turnstile, GeeTest, DataDome, serta captcha gambar/teks. |
| Alur | Ekstrak sitekey dari halaman, minta token ke API DBC (type 4), suntikkan kembali, dan kirim formulir. |
| Saldo | Solusi dibayar dari saldo akun; periksa sebelum melakukan dekode. |
| Percobaan ulang | Tidak adanya solusi bersifat sementara: coba lagi dengan backoff, seperti contoh resmi. |
| API vs ekstensi | Alur ini menggunakan API di dalam skrip Anda; ekstensi browser adalah jalur tanpa kode untuk penjelajahan manual. |
| Browser yang didukung | Browser yang mendukung WebDriver; sampel resmi berjalan di Firefox dan Chrome. |
Untuk penerapan pemecah captcha Selenium, konfirmasikan aliran token yang stabil terlebih dahulu, lalu sambungkan halaman keandalan dan harga untuk menyelesaikan perencanaan produksi.