CAPSOLVER
Blog
Mengerjakan reCAPTCHA Menggunakan Python, Java, dan C++Ketika saya pertama kali mulai bekerja dengan reCAPTCHA, saya menemukannya sebagai pedang bermata dua. Di satu sisi, ini bagus untuk menyaring bot, tetapi di sisi lain, ini bisa menjadi rintangan yang cukup besar untuk proyek otomatisasi yang sah. Saat itulah saya menemukan CapSolver, alat yang ampuh yang menyederhanakan pemecahan tantangan reCAPTCHA. Baik Anda mengkodekan dalam Python, Java, atau C++, mengintegrasikan CapSolver ke dalam alur kerja Anda dapat menghemat waktu dan usaha, sekaligus membuat tugas otomatis Anda lebih andal. Berikut adalah cara Anda dapat mengimplementasikannya di berbagai bahasa ini, langkah demi langkah.

Memecahkan reCAPTCHA Menggunakan Python, Java, dan C++

Logo of CapSolver

Ethan Collins

Pattern Recognition Specialist

25-Oct-2024

Saat saya pertama kali mulai bekerja dengan reCAPTCHA, saya menemukannya sebagai pedang bermata dua. Di satu sisi, itu bagus untuk menyaring bot, tetapi di sisi lain, itu bisa menjadi rintangan yang cukup besar untuk proyek otomatisasi yang sah. Jadi di artikel ini, saya akan memandu Anda melalui pemecahan reCAPTCHA menggunakan tiga bahasa pemrograman yang ampuh: Python, Java, dan C++. Setiap bahasa membawa keunggulannya sendiri dalam menangani tantangan reCAPTCHA, menawarkan fleksibilitas tergantung pada kebutuhan proyek Anda. Kita akan mulai dengan memahami apa itu CAPTCHA dan reCAPTCHA, bersama dengan pentingnya mereka dalam keamanan web

Apa itu CAPTCHA?

Mari kita mulai dengan konsep yang paling dasar: apa itu CAPTCHA, atau "Completely Automated Public Turing test to tell Computers and Humans Apart," yang merupakan metode umum untuk membedakan antara pengguna manusia dan bot. Ini membantu situs web menghindari serangan otomatis, spam, atau eksploitasi dengan meminta pengguna untuk menyelesaikan tugas yang mudah bagi manusia tetapi sulit bagi mesin. Ini bisa berupa mengenali teks yang terdistorsi, memilih gambar dengan objek tertentu, atau menyelesaikan teka-teki logika.

Apa itu reCAPTCHA?

reCAPTCHA adalah layanan yang dikembangkan oleh Google yang membantu melindungi situs web dari spam dan penyalahgunaan dengan membedakan pengguna manusia dari bot. Ini telah berkembang seiring waktu menjadi berbagai versi, masing-masing menawarkan kemampuan khusus.

  1. reCAPTCHA v2: Ini adalah bentuk yang paling umum di mana pengguna menyelesaikan tugas seperti mengklik kotak centang ("Saya bukan robot") atau memilih gambar. Ini lebih ramah pengguna tetapi mungkin masih menampilkan tantangan berdasarkan faktor risiko.

  2. reCAPTCHA v3: Versi ini berjalan secara tidak terlihat di latar belakang tanpa mengganggu pengguna. Ini menetapkan skor risiko (0,0 hingga 1,0) berdasarkan perilaku pengguna. Pengguna berisiko rendah lolos tanpa melihat tantangan, sementara aktivitas yang mencurigakan dapat memicu langkah-langkah verifikasi.

  3. reCAPTCHA Enterprise: Dirancang untuk perlindungan tingkat perusahaan, versi ini menawarkan fitur keamanan yang ditingkatkan untuk bisnis besar. Ini menyediakan analisis tingkat lanjut, model pembelajaran mesin, dan penilaian berbasis risiko yang disesuaikan dengan transaksi berisiko tinggi, dengan penyesuaian yang lebih besar untuk memenuhi kebutuhan keamanan bisnis.

Setiap versi ini bertujuan untuk memberikan keamanan optimal sambil meminimalkan gesekan bagi pengguna yang sah, beradaptasi dengan kecanggihan bot dan serangan yang meningkat.

  1. reCAPTCHA v2 Demo
    Lihat demo reCAPTCHA v2
  2. reCAPTCHA v3 Demo
    Lihat demo reCAPTCHA v3
  3. reCAPTCHA Enterprise Demo
    Pelajari lebih lanjut tentang reCAPTCHA Enterprise

Memecahkan reCAPTCHA di Python, Java, dan C++

Setiap bahasa menawarkan kekuatan unik dalam menangani tantangan reCAPTCHA:

  • Python dikenal dengan kesederhanaannya dan kumpulan pustaka yang besar yang memfasilitasi otomatisasi web dan pengambilan data. Menggunakan pustaka seperti Selenium dan Playwright, Anda dapat dengan mudah mengotomatiskan tugas browser dan melewati CAPTCHA dengan alat yang tepat.

  • Java sangat bagus untuk aplikasi tingkat perusahaan dan proyek lintas platform. Kemampuan multithreading dan kerangka kerja seperti Selenium WebDriver memungkinkan penanganan reCAPTCHA yang lancar dalam sistem yang dapat diskalakan.

  • C++ menawarkan keuntungan kinerja, menjadikannya ideal untuk sistem yang membutuhkan kecepatan dan latensi rendah. Meskipun jarang digunakan untuk otomatisasi, ini dapat diintegrasikan dengan alat lain untuk mengatasi tantangan reCAPTCHA di lingkungan berkinerja tinggi.

Memperkenalkan CapSolver

Saat Anda maju, Anda akan menyadari bahwa mengatasi tantangan reCAPTCHA bisa menjadi rumit karena algoritma dan kompleksitas yang berkembang. Di situlah CapSolver masuk. Ini adalah layanan khusus yang mengotomatiskan proses pemecahan reCAPTCHA dengan akurasi tinggi, menangani berbagai jenis CAPTCHA, termasuk reCAPTCHA v2, reCAPTCHA v3, dan banyak lagi. Dengan mengintegrasikan CapSolver ke dalam proyek Python, Java, atau C++ Anda, Anda dapat membebani kompleksitas memecahkan CAPTCHA ke layanan khusus, memungkinkan skrip Anda berjalan dengan lancar dan efisien.

Selanjutnya, kita akan membahas kode sampel untuk setiap bahasa dan bagaimana Anda dapat dengan cepat mengintegrasikan CapSolver ke dalam proyek Anda...

Kode Bonus

Klaim Anda Kode Bonus untuk solusi captcha teratas; CapSolver: WEBS. Setelah menukarkannya, Anda akan mendapatkan bonus tambahan 5% setelah setiap pengisian ulang, Tidak Terbatas

Cara Memecahkan reCAPTCHA Menggunakan Python

Prasyarat

Langkah 1. Dapatkan kunci situs
Untuk V2 dan V3, Anda dapat mencari permintaan /recaptcha/api2/reload?k=6LcR_okUAAAAAPYrPe-HK_0RULO1aZM15ENyM-Mf di log permintaan browser, di mana k= adalah nilai kunci yang kita butuhkan

Langkah 2. Bedakan antara V2 dan V3

V2 dan V3 memiliki metode penanganan yang berbeda. V2 membutuhkan pengenalan gambar untuk memilih jawaban, sedangkan V3 relatif tidak mengganggu; Namun, V3 memerlukan penyediaan Aksi selama verifikasi. Berdasarkan nilai kunci yang diperoleh sebelumnya, cari halaman respons, dan Anda akan menemukan nilai Aksi di halaman

Langkah 3. Panggil layanan CapSolver

Membedakan versi reCAPTCHA

  • Di log permintaan browser, Anda dapat melihat bahwa untuk V2, setelah permintaan /recaptcha/api2/reload, permintaan /recaptcha/api2/userverify biasanya diperlukan untuk mendapatkan token passage;
  • Untuk V3, permintaan /recaptcha/api2/reloaddapat langsung mendapatkan token passage

Contoh lengkap panggilan API CapSolver

  • Python reCAPTCHA V2
python Copy
# pip install requests
import requests
import time

# TODO: set your config
api_key = "YOUR_API_KEY"  # your api key of capsolver
site_key = "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-"  # site key of your target site
site_url = "https://www.google.com/recaptcha/api2/demo"  # page url of your target site

# site_key = "6LelzS8UAAAAAGSL60ADV5rcEtK0x0lRsHmrtm62"
# site_url = "https://mybaragar.com/index.cfm?event=page.SchoolLocatorPublic&DistrictCode=BC45"


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("Failed to create task:", res.text)
        return
    print(f"Got taskId: {task_id} / Getting result...")

    while True:
        time.sleep(3)  # delay
        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("Solve failed! response:", res.text)
            return


token = capsolver()
print(token)
  • Python reCAPTCHA V3
python Copy
# pip install requests
import requests
import time

# TODO: set your config
api_key = "YOUR_API_KEY"  # your api key of capsolver

site_key = "6LcR_okUAAAAAPYrPe-HK_0RULO1aZM15ENyM-Mf"  # site key of your target site
site_url = "https://antcpt.com/score_detector/"  # page url of your target site


def capsolver():
    payload = {
        "clientKey": api_key,
        "task": {
            "type": 'ReCaptchaV3TaskProxyLess',
            "websiteKey": site_key,
            "websiteURL": site_url,
            "pageAction": "homepage",
        }
    }
    res = requests.post("https://api.capsolver.com/createTask", json=payload)
    resp = res.json()
    task_id = resp.get("taskId")
    if not task_id:
        print("Failed to create task:", res.text)
        return
    print(f"Got taskId: {task_id} / Getting result...")

    while True:
        time.sleep(1)  # delay
        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("Solve failed! response:", res.text)
            return

# verify score
def score_detector(token):
    headers = {
        "accept": "application/json, text/javascript, */*; q=0.01",
        "accept-language": "fr-CH,fr;q=0.9",
        "content-type": "application/json",
        "origin": "https://antcpt.com",
        "priority": "u=1, i",
        "referer": "https://antcpt.com/score_detector/",
        "sec-ch-ua": "\"Not/A)Brand\";v=\"8\", \"Chromium\";v=\"126\", \"Google Chrome\";v=\"126\"",
        "sec-ch-ua-mobile": "?0",
        "sec-ch-ua-platform": "\"macOS\"",
        "sec-fetch-dest": "empty",
        "sec-fetch-mode": "cors",
        "sec-fetch-site": "same-origin",
        "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36",
        "x-requested-with": "XMLHttpRequest"
    }
    url = "https://antcpt.com/score_detector/verify.php"
    data = {
        "g-recaptcha-response": token
    }
    data = json.dumps(data, separators=(',', ':'))
    response = requests.post(url, headers=headers, data=data)

    print(response.json())
    print(response)

token = capsolver()
print(token)

...
...
{
    'success': True, 
    'challenge_ts': '2024-07-19T10:50:56Z', 
    'hostname': 'antcpt.com', 
    'score': 0.7, 
    'action': 'homepage'
}

Cara Memecahkan reCAPTCHA Menggunakan Java

Prasyarat

Sebelum kita menyelami kode, ada beberapa prasyarat yang harus Anda miliki untuk mengikuti tutorial ini dengan sukses:

  • Node.js dan npm: Kami akan menggunakan Node.js, runtime JavaScript, bersama dengan npm (Node Package Manager) untuk mengelola dependensi proyek kami. Jika Anda belum menginstal Node.js, Anda dapat mengunduhnya dari situs web resmi Node.js.
  • Kunci API CapSolver: Untuk secara efektif memecahkan tantangan reCAPTCHA, Anda memerlukan akses ke layanan seperti CapSolver, yang berspesialisasi dalam memecahkan tantangan CAPTCHA secara terprogram. Pastikan Anda mendaftar dan mendapatkan kunci API dari CapSolver untuk mengintegrasikannya ke dalam solusi Anda.

Setelah Anda memenuhi prasyarat ini, Anda siap untuk menyiapkan lingkungan Anda dan mulai memecahkan tantangan reCAPTCHA dengan JavaScript dan CapSolver.

Langkah 1: Mendapatkan Kunci Situs

  • Di log permintaan browser, cari permintaan
    /recaptcha/api2/reload?k=6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-, di mana nilai setelah k= adalah Kunci Situs yang kita butuhkan. Atau Anda dapat menemukan semua parameter untuk menyelesaikan recapctha melalui ekstensi CapSolver
  • URL adalah alamat halaman yang memicu reCAPTCHA V2.

Langkah 2: Instal pustaka permintaan

bash Copy
pip install requests

Langkah 3: Contoh kode

python Copy
import requests
import time
from DrissionPage import ChromiumPage

# Create an instance of ChromiumPage
page = ChromiumPage()

# Access the example page that triggers reCAPTCHA
page.get("https://www.google.com/recaptcha/api2/demo")

# TODO: Set your configuration
api_key = "your api key of capsolver"  # Your CapSolver API key
site_key = "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-"  # Site key of your target site
site_url = "https://www.google.com/recaptcha/api2/demo"  # Page URL of your target site

def capsolver():
    payload = {
        "clientKey": api_key,
        "task": {
            "type": 'ReCaptchaV2TaskProxyLess',
            "websiteKey": site_key,
            "websiteURL": site_url
        }
    }
    # Send a request to CapSolver to create a task
    res = requests.post("https://api.capsolver.com/createTask", json=payload)
    resp = res.json()
    task_id = resp.get("taskId")
    if not task_id:
        print("Failed to create task:", res.text)
        return
    print(f"Got taskId: {task_id} / Getting result...")

    while True:
        time.sleep(3)  # Delay
        payload = {"clientKey": api_key, "taskId": task_id}
        # Query task results
        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("Solve failed! response:", res.text)
            return

def check():
    # Get the reCAPTCHA solution
    token = capsolver()
    # Set the reCAPTCHA response value
    page.run_js(f'document.getElementById("g-recaptcha-response").value="{token}"')
    # Call the success callback function
    page.run_js(f'onSuccess("{token}")')
    # Submit the form
    page.ele('x://input[@id="recaptcha-demo-submit"]').click()

if __name__ == '__main__':
    check()

Cara Memecahkan reCAPTCHA Menggunakan C++

Prasyarat

Sebelum kita mulai, pastikan Anda telah menginstal pustaka berikut:

  1. cpr: Pustaka HTTP C++.
  2. jsoncpp: Pustaka C++ untuk parsing JSON.

Anda dapat menginstalnya menggunakan vcpkg:

bash Copy
vcpkg install cpr jsoncpp

Langkah 1: Menyiapkan Proyek Anda

Buat proyek C++ baru dan sertakan tajuk yang diperlukan untuk cpr dan jsoncpp.

cpp Copy
#include <iostream>
#include <cpr/cpr.h>
#include <json/json.h>

Langkah 2: Definisikan Fungsi untuk Membuat dan Mendapatkan Hasil Tugas

Kita akan mendefinisikan dua fungsi utama: createTask dan getTaskResult.

  1. createTask: Fungsi ini membuat tugas reCAPTCHA.
  2. getTaskResult: Fungsi ini mengambil hasil tugas yang dibuat.

Berikut adalah kode lengkapnya:

cpp Copy
#include <iostream>
#include <cpr/cpr.h>
#include <json/json.h>

std::string createTask(const std::string& apiKey, const std::string& websiteURL, const std::string& websiteKey) {
    Json::Value requestBody;
    requestBody["clientKey"] = apiKey;
    requestBody["task"]["type"] = "ReCaptchaV2Task";
    requestBody["task"]["websiteURL"] = websiteURL;
    requestBody["task"]["websiteKey"] = websiteKey;

    Json::StreamWriterBuilder writer;
    std::string requestBodyStr = Json::writeString(writer, requestBody);

    cpr::Response response = cpr::Post(
        cpr::Url{"https://api.capsolver.com/createTask"},
        cpr::Body{requestBodyStr},
        cpr::Header{{"Content-Type", "application/json"}}
    );

    Json::CharReaderBuilder reader;
    Json::Value responseBody;
    std::string errs;
    std::istringstream s(response.text);
    std::string taskId;

    if (Json::parseFromStream(reader, s, &responseBody, &errs)) {
        if (responseBody["errorId"].asInt() == 0) {
            taskId = responseBody["taskId"].asString();
        } else {
            std::cerr << "Error: " << responseBody["errorCode"].asString() << std::endl;
        }
    } else {
        std::cerr << "Failed to parse response: " << errs << std::endl;
    }

    return taskId;
}

std::string getTaskResult(const std::string& apiKey, const std::string& taskId) {
    Json::Value requestBody;
    requestBody["clientKey"] = apiKey;
    requestBody["taskId"] = taskId;

    Json::StreamWriterBuilder writer;
    std::string requestBodyStr = Json::writeString(writer, requestBody);

    while (true) {
        cpr::Response response = cpr::Post(
            cpr::Url{"https://api.capsolver.com/getTaskResult"},
            cpr::Body{requestBodyStr},
            cpr::Header{{"Content-Type", "application/json"}}
        );

        Json::CharReaderBuilder reader;
        Json::Value responseBody;
        std::string errs;
        std::istringstream s(response.text);

        if (Json::parseFromStream(reader, s, &responseBody, &errs)) {
            if (responseBody["status"].asString() == "ready") {
                return responseBody["solution"]["gRecaptchaResponse"].asString();
            } else if (responseBody["status"].asString() == "processing") {
                std::cout << "Task is still processing, waiting for 5 seconds..." << std::endl;
                std::this_thread::sleep_for(std::chrono::seconds(5));
            } else {
                std::cerr << "Error: " << responseBody["errorCode"].asString() << std::endl;
                break;
            }
        } else {
            std::cerr << "Failed to parse response: " << errs << std::endl;
            break;
        }
    }

    return "";
}

int main() {
    std::string apiKey = "YOUR_API_KEY";
    std::string websiteURL = "https://example.com";
    std::string websiteKey = "SITE_KEY";

    std::string taskId = createTask(apiKey, websiteURL, websiteKey);
    if (!taskId.empty()) {
        std::cout << "Task created successfully. Task ID: " << taskId << std::endl;
        std::string recaptchaResponse = getTaskResult(apiKey, taskId);
        std::cout << "reCAPTCHA Response: " << recaptchaResponse << std::endl;
    } else {
        std::cerr << "Failed to create task." << std::endl;
    }

    return 0;
}

Pikiran Akhir

Saat saya menutup, saya dapat dengan yakin mengatakan bahwa mengintegrasikan CapSolver ke dalam proyek saya telah membuat penanganan tantangan reCAPTCHA jauh lebih mudah. Baik itu V2 atau V3, prosesnya mudah dan telah menghemat banyak waktu saya. Jika Anda menghadapi tantangan serupa, saya sangat menyarankan untuk mencoba CapSolver—ini telah mengubah permainan bagi saya.

Pernyataan Kepatuhan: Informasi yang diberikan di blog ini hanya untuk tujuan informasi. CapSolver berkomitmen untuk mematuhi semua hukum dan peraturan yang berlaku. Penggunaan jaringan CapSolver untuk kegiatan ilegal, penipuan, atau penyalahgunaan sangat dilarang dan akan diselidiki. Solusi penyelesaian captcha kami meningkatkan pengalaman pengguna sambil memastikan kepatuhan 100% dalam membantu menyelesaikan kesulitan captcha selama pengambilan data publik. Kami mendorong penggunaan layanan kami secara bertanggung jawab. Untuk informasi lebih lanjut, silakan kunjungi Syarat Layanan dan Kebijakan Privasi.

Lebih lanjut

Apa penyelesai reCAPTCHA v2 dan v3 terbaik saat web scraping di tahun 2025
Apa penyelesai reCAPTCHA v2 dan v3 terbaik saat melakukan web scraping di tahun 2025

Pada tahun 2025, dengan semakin canggihnya sistem anti-bot, menemukan penyelesai reCAPTCHA yang andal telah menjadi sangat penting untuk keberhasilan ekstraksi data.

reCAPTCHA
Logo of CapSolver

Ethan Collins

17-Jan-2025

Mengerjakan reCAPTCHA Menggunakan Python, Java, dan C++
Memecahkan reCAPTCHA Menggunakan Python, Java, dan C++

Bagaimana cara memecahkan reCAPTCHA dengan sukses menggunakan tiga bahasa pemrograman yang kuat: Python, Java, dan C++ dalam satu blog? Masuk!

reCAPTCHA
Logo of CapSolver

Ethan Collins

25-Oct-2024

Cara Menyelesaikan reCAPTCHA v2 dengan Rust
Cara Menyelesaikan reCAPTCHA v2 dengan Rust

Pelajari cara menyelesaikan reCaptcha v2 menggunakan Rust dan API Capsolver. Panduan ini mencakup metode proxy dan tanpa proxy, memberikan instruksi langkah demi langkah dan contoh kode untuk mengintegrasikan penyelesaian reCaptcha v2 ke dalam aplikasi Rust Anda.

reCAPTCHA
Logo of CapSolver

Ethan Collins

17-Oct-2024

Panduan Menyelesaikan reCAPTCHA v3 dengan Skor Tinggi di Python
Panduan Menyelesaikan reCAPTCHA v3 dengan Skor Tinggi di Python

Panduan ini akan memandu Anda melalui strategi yang efektif dan teknik Python untuk menyelesaikan reCAPTCHA v3 dengan skor tinggi, memastikan tugas otomatisasi Anda berjalan lancar.

reCAPTCHA
Logo of CapSolver

Ethan Collins

17-Sep-2024

Memecahkan Tantangan reCAPTCHA v3 Enterprise dengan Python dan Selenium
Memecahkan Tantangan reCAPTCHA v3 Enterprise dengan Python dan Selenium

Cara menyelesaikan tantangan reCAPTCHA v3 Enterprise menggunakan Python dan Selenium, alat otomatisasi browser yang populer.

reCAPTCHA
Logo of CapSolver

Ethan Collins

04-Sep-2024

Cara Cepat dan Mudah untuk Mengerjakan reCAPTCHA dengan Cepat
Cara Cepat dan Mudah untuk Mengerjakan reCAPTCHA dengan Cepat

Jelajahi beberapa metode cepat dan mudah untuk menyelesaikan reCAPTCHA dengan cepat

reCAPTCHA
Logo of CapSolver

Ethan Collins

02-Sep-2024