
Adélia Cruz
Neural Network Developer

CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) adalah langkah keamanan yang dirancang untuk membedakan pengguna manusia dari bot otomatis. CAPTCHA sering kali menampilkan tantangan seperti pengenalan gambar, distorsi teks, atau teka-teki interaktif yang mudah bagi manusia tetapi sulit bagi bot. Meskipun CAPTCHA melindungi situs web dari penyalahgunaan otomatis, CAPTCHA bisa menjadi hambatan signifikan bagi otomatisasi sah dan aktivitas scraping web.
Dalam blog ini, kita akan menjelajahi cara menyelesaikan CAPTCHA menggunakan Playwright dengan ekstensi CapSolver. Selain itu, kita juga akan melihat cara menyelesaikan reCAPTCHA menggunakan API CapSolver dengan Python dan Go.
CAPTCHA adalah mekanisme keamanan yang digunakan oleh situs web untuk mencegah akses otomatis dan memastikan bahwa pengguna adalah manusia. Jenis-jenis umum termasuk:
CapSolver adalah alat yang kuat yang dirancang untuk menyelesaikan berbagai jenis CAPTCHA, termasuk CAPTCHA dan reCAPTCHA. Alat ini menyediakan ekstensi browser dan API untuk integrasi yang mulus ke dalam alur kerja otomatisasi web Anda.
Dapatkan Kode Bonus CapSolver Anda
Tingkatkan anggaran otomatisasi Anda secara instan!
Gunakan kode bonus CAPN saat menambahkan dana ke akun CapSolver Anda untuk mendapatkan bonus tambahan 5% pada setiap penambahan dana — tanpa batas.
Dapatkan sekarang di Dashboard CapSolver
.
Pertama, Anda perlu menginstal Playwright. Anda dapat melakukannya melalui npm:
npm install playwright
./CapSolver.Browser.Extension di akar proyek Anda../assets/config.json. Pastikan enabledForcaptcha diatur ke true dan atur captchaMode ke token untuk penyelesaian otomatis.Perubahan konfigurasi contoh:
{
"enabledForcaptcha": true,
"captchaMode": "token"
}
Berikut adalah skrip contoh menggunakan Playwright untuk menyelesaikan captcha dengan ekstensi CapSolver:
const { chromium } = require('playwright');
const path = require('path');
(async () => {
const extensionPath = path.join(__dirname, 'CapSolver.Browser.Extension');
const browser = await chromium.launchPersistentContext('', {
headless: false,
args: [
`--disable-extensions-except=${extensionPath}`,
`--load-extension=${extensionPath}`
]
});
const page = await browser.newPage();
await page.goto('https://site.example');
// Temukan kotak centang captcha atau frame dan interaksi sesuai
await page.waitForSelector('selector-for-captcha', { state: 'visible' });
await page.click('selector-for-captcha');
// Tambahkan langkah tambahan sesuai kebutuhan Anda
// ...
await browser.close();
})();
Untuk reCAPTCHA, Anda dapat menggunakan API CapSolver. Berikut adalah contoh dalam Python dan Go.
import requests
import time
api_key = "YOUR_API_KEY"
site_key = "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-"
site_url = "https://www.google.com/recaptcha/api2/demo"
def capsolver():
payload = {
"clientKey": api_key,
"task": {
"type": 'ReCaptchaV2TaskProxyLess',
"websiteKey": site_key,
"websiteURL": site_url
}
}
res = requests.post("https://api.capsolver.com/createTask", json=payload)
resp = res.json()
task_id = resp.get("taskId")
if not task_id:
print("Gagal membuat tugas:", res.text)
return
print(f"Mendapatkan taskId: {task_id} / Mendapatkan hasil...")
while True:
time.sleep(3)
payload = {"clientKey": api_key, "taskId": task_id}
res = requests.post("https://api.capsolver.com/getTaskResult", json=payload)
resp = res.json()
status = resp.get("status")
if status == "ready":
return resp.get("solution", {}).get('gRecaptchaResponse')
if status == "failed" or resp.get("errorId"):
print("Penyelesaian gagal! respons:", res.text)
return
token = capsolver()
print(token)
package main
import (
"bytes"
"context"
"encoding/json"
"errors"
"fmt"
"io"
"net/http"
"time"
)
type capSolverResponse struct {
ErrorId int32 `json:"errorId"`
ErrorCode string `json:"errorCode"`
ErrorDescription string `json:"errorDescription"`
TaskId string `json:"taskId"`
Status string `json:"status"`
Solution map[string]any `json:"solution"`
}
func capSolver(ctx context.Context, apiKey string, taskData map[string]any) (*capSolverResponse, error) {
uri := "https://api.capsolver.com/createTask"
res, err := request(ctx, uri, map[string]any{
"clientKey": apiKey,
"task": taskData,
})
if err != nil {
return nil, err
}
if res.ErrorId == 1 {
return nil, errors.New(res.ErrorDescription)
}
uri = "https://api.capsolver.com/getTaskResult"
for {
select {
case <-ctx.Done():
return res, errors.New("waktu penyelesaian habis")
case <-time.After(time.Second):
break
}
res, err = request(ctx, uri, map[string]any{
"clientKey": apiKey,
"taskId": res.TaskId,
})
if err != nil {
return nil, err
}
if res.ErrorId == 1 {
return nil, errors.New(res.ErrorDescription)
}
if res.Status == "ready" {
return res, err
}
}
}
func request(ctx context.Context, uri string, payload interface{}) (*capSolverResponse, error) {
payloadBytes, err := json.Marshal(payload)
if err != nil {
return nil, err
}
req, err := http.NewRequestWithContext(ctx, "POST", uri, bytes.NewReader(payloadBytes))
if err != nil {
return nil, err
}
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
return nil, err
}
defer resp.Body.Close()
responseData, err := io.ReadAll(resp.Body)
if err != nil {
return nil, err
}
capResponse := &capSolverResponse{}
err = json.Unmarshal(responseData, capResponse)
if err != nil {
return nil, err
}
return capResponse, nil
}
func main() {
apikey := "YOUR_API_KEY"
ctx, cancel := context.WithTimeout(context.Background(), time.Second*120)
defer cancel()
res, err := capSolver(ctx, apikey, map[string]any{
"type": "ReCaptchaV2TaskProxyLess",
"websiteURL": "https://www.google.com/recaptcha/api2/demo",
"websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
})
if err != nil {
panic(err)
}
fmt.Println(res.Solution["gRecaptchaResponse"])
}
Menggunakan alat seperti Playwright dan CapSolver, Anda dapat mengotomatisasi penyelesaian CAPTCHA, membuat tugas scraping web dan otomatisasi lebih efisien. Baik Anda menghadapi CAPTCHA atau reCAPTCHA, metode yang dijelaskan di sini memberikan solusi yang kuat untuk mengatasi tantangan ini.
Kepatuhan hukum dalam menyelesaikan CAPTCHA tergantung pada Ketentuan Layanan situs web, hukum setempat yang berlaku, dan bagaimana otomatisasi digunakan. CapSolver sendiri adalah alat netral yang dirancang untuk penggunaan sah seperti pengujian, otomatisasi QA, aksesibilitas, dan pengumpulan data yang sah. Sebelum menerapkan solusi penyelesaian CAPTCHA, Anda harus memastikan memiliki izin dari situs web target dan penggunaan Anda sesuai dengan regulasi yang berlaku.
CapSolver mendukung berbagai sistem CAPTCHA modern, termasuk tetapi tidak terbatas pada:
Dukungan tersedia melalui ekstensi browser (untuk Playwright, Puppeteer, dll.) dan solusi berbasis API untuk otomatisasi backend.
Gunakan ekstensi browser CapSolver ketika:
Gunakan API CapSolver ketika:
Dalam banyak setup produksi, tim menggunakan pendekatan keduanya tergantung pada skenario.
CapSolver dioptimalkan untuk tingkat keberhasilan yang tinggi dan latensi rendah. Dalam sebagian besar kasus, tantangan reCAPTCHA v2 diselesaikan dalam beberapa detik, tergantung pada kondisi jaringan dan kompleksitas tugas. Untuk otomatisasi skala besar, CapSolver juga mendukung konkurensi dan throughput yang stabil, menjadikannya sesuai untuk alur kerja scraping dan pengujian tingkat perusahaan.
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.
