CAPSOLVER
Blog
Cách giải reCAPTCHA v2 trong Crawl4AI với tích hợp CapSolver

Cách giải reCAPTCHA v2 trong Crawl4AI với tích hợp CapSolver

Logo of CapSolver

Anh Tuan

Data Science Expert

21-Oct-2025

Hộp kiểm "Tôi không phải là robot" đóng vai trò là cơ chế phòng thủ quan trọng chống lại lưu lượng bot và lạm dụng tự động trên các trang web. Mặc dù cần thiết cho bảo mật, nhưng nó thường tạo ra thách thức lớn cho các hoạt động trích xuất dữ liệu và quét web hợp pháp. Nhu cầu về các giải pháp giải CAPTCHA tự động hiệu quả đã trở nên cấp thiết đối với các nhà phát triển và doanh nghiệp phụ thuộc vào tự động hóa web.

Bài viết này đi sâu vào tích hợp mạnh mẽ của Crawl4AI, một crawler web tiên tiến, với CapSolver, một dịch vụ giải CAPTCHA hàng đầu, cụ thể là giải reCAPTCHA v2. Chúng tôi sẽ khám phá cả hai phương pháp tích hợp dựa trên API và tiện ích mở rộng trình duyệt, cung cấp các ví dụ mã chi tiết và giải thích để giúp bạn đạt được thu thập dữ liệu web liền mạch và không gián đoạn.

Hiểu về reCAPTCHA v2 và những thách thức của nó

reCAPTCHA v2 yêu cầu người dùng nhấp vào hộp kiểm, và đôi khi hoàn thành các thử thách hình ảnh, để chứng minh họ là người thật. Đối với các hệ thống tự động như crawler web, yếu tố tương tác này làm dừng quy trình quét, yêu cầu can thiệp thủ công hoặc kỹ thuật vượt qua phức tạp. Không có giải pháp hiệu quả, việc thu thập dữ liệu trở nên kém hiệu quả, không ổn định và tốn kém.

CapSolver cung cấp giải pháp có độ chính xác cao, phản hồi nhanh cho reCAPTCHA v2 bằng cách sử dụng thuật toán AI tiên tiến. Khi tích hợp với Crawl4AI, nó biến một rào cản lớn thành bước được tự động hóa, đảm bảo các nhiệm vụ tự động hóa web của bạn vẫn trơn tru và hiệu quả.

💡 Ưu đãi đặc biệt cho người dùng tích hợp Crawl4AI:
Nhân dịp tích hợp này, chúng tôi đang cung cấp mã giảm giá 6% — CRAWL4 cho tất cả người dùng CapSolver đăng ký qua hướng dẫn này.
Chỉ cần nhập mã trong phần nạp tiền tại Bảng điều khiển để nhận thêm 6% tín dụng ngay lập tức.

Phương pháp tích hợp 1: Tích hợp API CapSolver với Crawl4AI

Phương pháp tích hợp API cung cấp kiểm soát chi tiết và thường được khuyến khích do tính linh hoạt và độ chính xác. Nó bao gồm việc sử dụng chức năng js_code của Crawl4AI để chèn token CAPTCHA nhận được từ CapSolver trực tiếp vào trang web đích.

Cách hoạt động:

  1. Truy cập trang CAPTCHA: Crawl4AI truy cập trang web đích như bình thường.
  2. Nhận token: Trong script Python của bạn, gọi API của CapSolver bằng SDK của họ, truyền các tham số cần thiết như siteKeywebsiteURL để nhận token gRecaptchaResponse.
  3. Chèn token: Sử dụng tham số js_code của Crawl4AI trong CrawlerRunConfig để chèn token nhận được vào phần tử g-recaptcha-response trên trang.
  4. Tiếp tục thao tác: Sau khi chèn token thành công, Crawl4AI có thể tiếp tục các hành động tiếp theo, chẳng hạn như gửi biểu mẫu hoặc nhấp chuột, hiệu quả vượt qua reCAPTCHA.

Ví dụ mã: Tích hợp API cho reCAPTCHA v2

Mã Python sau đây minh họa cách tích hợp API của CapSolver với Crawl4AI để giải reCAPTCHA v2. Ví dụ này nhắm đến trang web demo hộp kiểm reCAPTCHA v2.

python Copy
import asyncio
import capsolver
from crawl4ai import *


# TODO: thiết lập cấu hình của bạn
api_key = "CAP-xxxxxxxxxxxxxxxxxxxxx"                                      # khóa API của bạn từ CapSolver
site_key = "6LfW6wATAAAAAHLqO2pb8bDBahxlMxNdo9g947u9"                      # khóa trang của trang web đích của bạn
site_url = "https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php"  # URL trang web đích của bạn
captcha_type = "ReCaptchaV2TaskProxyLess"                                  # loại CAPTCHA của trang web đích
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"
        )

        # lấy token reCAPTCHA bằng 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())

Phân tích mã:

  1. Gọi SDK CapSolver: Phương thức capsolver.solve được gọi với loại ReCaptchaV2TaskProxyLess, websiteURLwebsiteKey để nhận token gRecaptchaResponse. Token này là giải pháp do CapSolver cung cấp.
  2. Chèn JavaScript (js_code): Chuỗi js_code chứa JavaScript tìm kiếm phần tử g-recaptcha-response trên trang và gán token nhận được vào thuộc tính value của nó. Sau đó, nó mô phỏng cú nhấp chuột vào nút gửi, đảm bảo biểu mẫu được gửi với token CAPTCHA hợp lệ.
  3. Điều kiện wait_for: Một wait_condition được định nghĩa để đảm bảo Crawl4AI chờ đợi một phần tử cụ thể xuất hiện trên trang, cho thấy việc gửi đã thành công và trang đã tải nội dung mới.

Phương pháp tích hợp 2: Tích hợp tiện ích mở rộng CapSolver

Đối với các tình huống mà việc chèn API trực tiếp có thể phức tạp hoặc không mong muốn, tiện ích mở rộng CapSolver cung cấp một lựa chọn thay thế. Phương pháp này tận dụng khả năng phát hiện và giải CAPTCHA tự động trong môi trường trình duyệt do Crawl4AI quản lý.

Cách hoạt động:

  1. Khởi động trình duyệt với user_data_dir: Cấu hình Crawl4AI để khởi động một phiên trình duyệt với user_data_dir được chỉ định để duy trì ngữ cảnh bền vững.
  2. Cài đặt và cấu hình tiện ích: Cài đặt thủ công tiện ích CapSolver vào hồ sơ trình duyệt này và cấu hình khóa API CapSolver của bạn. Bạn cũng có thể cấu hình trước các tham số apiKeymanualSolving trong tệp config.js của tiện ích.
  3. Truy cập trang CAPTCHA: Crawl4AI truy cập trang chứa reCAPTCHA v2.
  4. Giải CAPTCHA tự động hoặc thủ công: Tùy thuộc vào cấu hình manualSolving của tiện ích, CAPTCHA sẽ được giải tự động khi phát hiện, hoặc bạn có thể kích hoạt thủ công thông qua JavaScript được chèn.
  5. Xác minh: Sau khi giải xong, token sẽ được xử lý tự động bởi tiện ích, và các hành động tiếp theo như gửi biểu mẫu sẽ mang theo xác minh hợp lệ.

Ví dụ mã: Tích hợp tiện ích mở rộng cho reCAPTCHA v2 (Giải tự động)

Ví dụ này cho thấy cách Crawl4AI có thể được cấu hình để sử dụng hồ sơ trình duyệt có tiện ích CapSolver cho việc giải reCAPTCHA v2 tự động.

python Copy
import asyncio
import time

from crawl4ai import *


# TODO: thiết lập cấu hình của bạn
user_data_dir = "/browser-profile/Default1" # Đảm bảo đường dẫn này được thiết lập đúng và chứa tiện ích đã cấu hình

browser_config = BrowserConfig(
    verbose=True,
    headless=False,
    user_data_dir=user_data_dir,
    use_persistent_context=True,
    proxy="http://127.0.0.1:13120", # Tùy chọn: cấu hình proxy nếu cần
)

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"
        )

        # Tiện ích sẽ tự động giải CAPTCHA khi trang được tải.
        # Bạn có thể cần thêm điều kiện chờ hoặc time.sleep để CAPTCHA được giải
        # trước khi tiếp tục các hành động tiếp theo.
        time.sleep(30) # Ví dụ chờ, điều chỉnh khi cần thiết

        # Tiếp tục với các hoạt động khác của Crawl4AI sau khi CAPTCHA được giải
        # Ví dụ, kiểm tra các phần tử xuất hiện sau khi gửi thành công
        # print(result_initial.markdown) # Bạn có thể kiểm tra nội dung trang sau thời gian chờ


if __name__ == "__main__":
    asyncio.run(main())

Phân tích mã:

  1. user_data_dir: Tham số này rất quan trọng để Crawl4AI khởi động phiên trình duyệt giữ nguyên tiện ích CapSolver và cấu hình của nó. Đảm bảo đường dẫn trỏ đến thư mục hồ sơ trình duyệt hợp lệ nơi tiện ích được cài đặt.
  2. Giải tự động: Với manualSolving được đặt thành false (hoặc mặc định) trong cấu hình tiện ích, tiện ích sẽ tự động phát hiện và giải reCAPTCHA v2 khi trang được tải. Một time.sleep được bao gồm như một mẫu để cho phép tiện ích đủ thời gian giải CAPTCHA trước khi thực hiện các hành động tiếp theo.

Ví dụ mã: Tích hợp tiện ích mở rộng cho reCAPTCHA v2 (Giải thủ công)

Nếu bạn muốn kích hoạt việc giải CAPTCHA thủ công tại một điểm cụ thể trong logic quét của mình, bạn có thể cấu hình tham số manualSolving của tiện ích thành true và sau đó sử dụng js_code để nhấp vào nút giải được cung cấp bởi tiện ích.

python Copy
import asyncio
import time

from crawl4ai import *


# TODO: thiết lập cấu hình của bạn
user_data_dir = "/browser-profile/Default1" # Đảm bảo đường dẫn này được thiết lập đúng và chứa tiện ích đã cấu hình

browser_config = BrowserConfig(
    verbose=True,
    headless=False,
    user_data_dir=user_data_dir,
    use_persistent_context=True,
    proxy="http://127.0.0.1:13120", # Tùy chọn: cấu hình proxy nếu cần
)

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"
        )

        # Chờ một lúc để trang tải và tiện ích sẵn sàng
        time.sleep(6)

        # Sử dụng js_code để kích hoạt nút giải thủ công được cung cấp bởi tiện ích 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("Kết quả thực thi JS:", result_next.js_execution_result)

        # Cho phép thời gian để CAPTCHA được giải sau khi kích hoạt thủ công
        time.sleep(30) # Ví dụ chờ, điều chỉnh khi cần thiết

        # Tiếp tục với các hoạt động khác của Crawl4AI


if __name__ == "__main__":
    asyncio.run(main())

Phân tích mã:

  1. manualSolving: Trước khi chạy mã này, đảm bảo tệp config.js của tiện ích CapSolver có manualSolving được đặt thành true.
  2. Kích hoạt giải:js_code mô phỏng sự kiện nhấp chuột vào nút #capsolver-solver-tip-button, nút được cung cấp bởi tiện ích CapSolver để giải thủ công. Điều này cho phép bạn kiểm soát chính xác thời điểm quá trình giải CAPTCHA được khởi động.

Kết luận

Việc tích hợp Crawl4AI với CapSolver cung cấp các giải pháp mạnh mẽ và linh hoạt để vượt qua reCAPTCHA v2, nâng cao đáng kể hiệu quả và độ tin cậy của các hoạt động trích xuất dữ liệu web. Dù bạn chọn kiểm soát chính xác của tích hợp API hay thiết lập đơn giản của tích hợp tiện ích mở rộng, cả hai phương pháp đều đảm bảo rằng reCAPTCHA v2 không còn là rào cản đối với mục tiêu thu thập dữ liệu của bạn.

Bằng cách tự động hóa việc giải CAPTCHA, các nhà phát triển có thể tập trung vào việc trích xuất dữ liệu có giá trị, tự tin rằng các crawler của họ có thể truy cập các trang web được bảo vệ một cách trơn tru. Sự kết hợp giữa khả năng quét tiên tiến của Crawl4AI và công nghệ giải CAPTCHA mạnh mẽ của CapSolver đánh dấu một bước tiến quan trọng trong việc trích xuất dữ liệu web tự động.

Tài liệu tham khảo

Tuyên bố Tuân thủ: Thông tin được cung cấp trên blog này chỉ mang tính chất tham khảo. CapSolver cam kết tuân thủ tất cả các luật và quy định hiện hành. Việc sử dụng mạng lưới CapSolver cho các hoạt động bất hợp pháp, gian lận hoặc lạm dụng là hoàn toàn bị cấm và sẽ bị điều tra. Các giải pháp giải captcha của chúng tôi nâng cao trải nghiệm người dùng trong khi đảm bảo tuân thủ 100% trong việc giúp giải quyết các khó khăn về captcha trong quá trình thu thập dữ liệu công khai. Chúng tôi khuyến khích việc sử dụng dịch vụ của chúng tôi một cách có trách nhiệm. Để biết thêm thông tin, vui lòng truy cập Điều khoản Dịch vụ và Chính sách Quyền riêng tư.

Thêm

Cách giải reCaptcha v2 bằng Selenium [Python] với Capsolver Extension
Cách giải reCAPTCHA V2 bằng Selenium [Python] với Extension CapSolver

Học cách giải reCaptcha v2 một cách mượt mà với Selenium Python và Phần mở rộng Capsolver, một hướng dẫn chi tiết về việc thiết lập và tự động hóa các giải pháp captcha một cách hiệu quả.

reCAPTCHA
Logo of CapSolver

Anh Tuan

05-Nov-2025

Tiện ích mở rộng Capsolver - Giải reCAPTCHA trong trình duyệt của bạn
Tiện ích CapSolver - Giải reCAPTCHA trong Trình duyệt của bạn

Giải reCaptcha v2 / v3 / ẩn / doanh nghiệp trên bất kỳ trang web nào mà không gặp khó khăn bằng Phần mở rộng Giải Captcha Capsolver

reCAPTCHA
Logo of CapSolver

Anh Tuan

27-Oct-2025

bot duyệt web giải captcha
Cách xử lý reCAPTCHA trong web scraping bằng Python

Học cách giải reCAPTCHA v2 và v3 trong web scraping bằng Python và Capsolver. Hướng dẫn từng bước, tùy chọn proxy và ví dụ mã nguồn để tự động hóa mượt mà.

reCAPTCHA
Logo of CapSolver

Anh Tuan

24-Oct-2025

Tự động hóa SEO dựa trên Trí tuệ nhân tạo: Làm thế nào để giải quyết Captcha để thu thập dữ liệu kết quả tìm kiếm thông minh hơn
Tự động hóa SEO bằng Công nghệ AI: Làm thế nào để giải Captcha để thu thập dữ liệu SERP thông minh hơn

Khám phá cách Tự động hóa SEO dựa trên AI vượt qua các thách thức CAPTCHA để thu thập dữ liệu SERP thông minh hơn và tìm hiểu về các giải pháp reCAPTCHA v2/v3

reCAPTCHA
Logo of CapSolver

Anh Tuan

23-Oct-2025

Hướng dẫn giải reCAPTCHA v2
Cách Giải reCAPTCHA v2: Hướng Dẫn Giải reCAPTCHA v2

Học cách tự động hóa việc giải reCAPTCHA v2 của Google bằng CapSolver. Khám phá tích hợp API và SDK, hướng dẫn từng bước, và mã khuyến mãi để tối ưu hóa việc giải captcha cho các dự án quét web, tự động hóa và phát triển phần mềm.

reCAPTCHA
Logo of CapSolver

Anh Tuan

22-Oct-2025

Công cụ Giải Recaptcha
Công cụ giải reCAPTCHA Nhận diện tự động và phương pháp giải

Học cách nhận diện và giải quyết tự động các thách thức reCAPTCHA v2, v3, không hiển thị và doanh nghiệp bằng công nghệ AI và OCR tiên tiến

reCAPTCHA
Logo of CapSolver

Anh Tuan

22-Oct-2025