Menu

Hướng dẫn cách bỏ qua captcha bất kỳ với tác vụ AntiGate

Phiên bản video mới của hướng dẫn tác vụ AntiGate hiện đã có sẵn tại đây.

Sau nhiều năm nghiên cứu và phát triển, chúng tôi giới thiệu một giải pháp toàn diện giúp robot của bạn thông qua các cổng captcha do con người tạo ra. Chúng tôi gọi đó là “AntiGate” và sau đây là các mẫu tình huống mà nhân lực của chúng tôi sử dụng để thực hiện các tác vụ chính xác.

Trong tình huống nhất định, ứng dụng của bạn gặp “gateway” (cổng kết nối mạng) bảo vệ tự động với một số dạng captcha mới, tập lệnh trình duyệt xáo trộn hoặc các dạng bảo vệ tự động khác. Đây là khi tác vụ AntiGate được thực hiện. Bạn ủy quyền cho một trong số những nhân viên của chúng tôi tạo một phiên trình duyệt giống của người thật.
  • Đầu tiên, chọn một mẫu. Bạn có thể sử dụng một mẫu có sẵn hoặc tự tạo mẫu riêng. Một mẫu là tập hợp các bước hướng dẫn để nhân viên thực hiện.
  • Thứ hai, cung cấp dữ liệu bổ sung mà mẫu yêu cầu, chẳng hạn như giá trị đầu vào cần điền, bộ chọn CSS của đầu vào hoặc địa chỉ trang web chúng tôi cần điều hướng tới. Chúng tôi sẽ nói thêm về các mẫu sau.
  • Thứ ba, và không bắt buộc - proxy. Bạn cần có mẫu nếu trang web liên kết mỗi cookie của phiên với một địa chỉ IP chính xác.
Với ba yếu tố này, bạn sẽ tạo được một tác vụ với API của chúng tôi. Nhân viên sẽ điều hướng đến trang web của bạn bằng plugin trình duyệt đặc biệt của chúng tôi và thực hiện thủ công hoặc tự động tất cả các bước theo kịch bản. Và ở cuối tập lệnh, chúng tôi sẽ thu thập tất cả thông tin về phiên trình duyệt của họ như cookie, giá trị localStorage, dấu vân tay của trình duyệt và chuyển về ứng dụng của bạn. Tất cả những gì còn lại là bạn sử dụng dữ liệu này để khôi phục phiên làm việc của chúng tôi và tiếp tục thao tác như trong phiên dành cho người dùng là người thật. Điều đó không tuyệt vời sao? :)

Mẫu AntiGate là gì?

Một mẫu AntiGate sẽ xác định một kịch bản chính xác mà nhân viên của chúng tôi sẽ trải qua. Mẫu bao gồm các bước được thực hiện theo đúng thứ tự. Sau khi hoàn thành một bước, nhân viên sẽ chuyển sang bước tiếp theo. Sau khi hoàn thành tất cả các bước, kết thúc tác vụ, ảnh chụp nhanh của phiên làm việc sẽ được thu thập và gửi lại về ứng dụng của bạn.

Có những loại bước thực hiện nào?
  • Điền tự động hoặc thủ công vào trường nhập văn bản.
  • Chờ mẫu văn bản xuất hiện (hoặc biến mất) trên trang.
  • Chờ phần tử DOM do CSS xác định xuất hiện trên (hoặc biến mất khỏi) trang.
  • Chờ từ khóa xuất hiện trong (hoặc biến mất khỏi) địa chỉ URL trình duyệt hiện tại của nhân viên.
Trường văn bản "description for workers” (mô tả cho nhân viên) của mẫu có thể mô tả bất kỳ bước nào khác mà bạn muốn từ nhân viên. Ví dụ: "Solve a captcha and press the submit button” (Giải captcha và nhấn nút gửi).
Hãy xem một ví dụ. Điều hướng đến Trung tâm nhà phát triển và tạo mẫu miễn phí để kiểm thử. Đừng lo, bạn sẽ không gây ảnh hưởng đến bất cứ nội dung nào!
Nhấp để thêm mẫu
Nhấp để tải ví dụ
Phần ghi chú cho các bước
Bạn đã tải một ví dụ minh họa. Bạn có thể lưu ví dụ vào tài khoản và tự kiểm thử sau. Hãy cùng làm quen với danh sách các thuộc tính mẫu đầy đủ:
  • Tên mẫu. Không thể chỉnh sửa thuộc tính này sau khi lưu. Sau khi xuất bản, mẫu của bạn sẽ xuất hiện trong API với tên này.
  • Mô tả dành cho khách hàng. Các mẫu công khai có sẵn trong danh mục mẫu của chúng tôi.
  • Mô tả dành cho nhân viên. Đây là văn bản mà nhân viên của chúng tôi nhìn thấy ở đầu trang.
    Ví dụ về giao diện nhân viên
  • Biến. Đây là danh sách tên biến bạn có thể thêm để sử dụng trong khi thực hiện các bước thay cho các giá trị cố định. Trong ví dụ này, chúng ta có 2 biến là "tên đăng nhập" và "mật khẩu". 2 biến này được sử dụng ở bước 1 và 2 để điền vào biểu mẫu đăng nhập thử. Bằng cách này, bạn có thể cung cấp các giá trị thông qua API thay vì mã hóa cứng tên đăng nhập và mật khẩu vĩnh viễn trong mẫu.
    Các biến dùng trong bước 1 và 2
  • . Tại đây, bạn sẽ có thể chỉnh sửa và thay đổi thứ tự các bước kịch bản. Trong ví dụ này, chúng tôi sẽ thực hiện các bước như sau:
    1. Tự động điền vào trường văn bản với bộ chọn CSS “#login” (đăng nhập). Giá trị của trường văn bản được xác định bằng biến “login” (đăng nhập).
    2. Tự động điền vào trường văn bản với bộ chọn CSS “#password” (mật khẩu). Giá trị của trường văn bản được xác định bằng biến “password” (mật khẩu).
    3. Chờ văn bản điều khiển xuất hiện trên trang. Văn bản điều khiển được đặt cố định thành giá trị "Test passed with login” (Thông qua kiểm thử bằng tên đăng nhập).

Bây giờ, bạn có thể lưu mẫu, mẫu này sẽ xuất hiện trong Trung tâm nhà phát triển của bạn. Lưu ý trạng thái của mẫu là “Sandbox”, nghĩa là mẫu chỉ có sẵn cho bạn và không có sẵn trong API. Từ đây, bạn có thể thử kiểm thử mẫu mới tạo để biết bạn có phải là nhân viên của chính mình hay không.

Mẫu thử nghiệm

Lúc này, bạn sẽ cần sử dụng trình duyệt Chrome và nên tạo một hồ sơ mới trên trình duyệt này vì chúng tôi cần cài đặt plugin của mình trên đó. Plugin này sẽ có quyền truy cập vào cookie của hồ sơ.
Ví dụ về giao diện nhân viên
Tiếp theo, trên thẻ mẫu của bạn, nhấn vào nút “test” (thử nghiệm).
Làm theo hướng dẫn và tải xuống plugin cho nền tảng của bạn. Sau đó, tải lại trang để plugin có hiệu lực, điền vào các biến "tên đăng nhập" và "mật khẩu" bằng các giá trị ngẫu nhiên và nhấn nút "Khởi chạy kiểm thử". Một trang mới sẽ mở ra và có giao diện như thế này:

Gần thanh địa chỉ là thanh màu xanh dương mà plugin thêm vào ở đầu trang đích. Đây là cách để nhân viên biết về nội dung phân công của mình và điều khiển quá trình thực hiện tác vụ.

Ngoài ra, lưu ý rằng trường đăng nhập và mật khẩu sẽ bị ẩn khi được điền bằng các biến. Đây là thao tác có chủ đích. Dù nhân viên có quyền truy cập vào toàn bộ dữ liệu tác vụ thông qua bảng điều khiển của lập trình viên, 99,99% nhân viên vẫn không kiểm tra các hành động diễn ra trước đó.
Để giải Recaptcha, nhấn nút “Sign In” (Đăng nhập). Bước cuối cùng của mẫu, "WAIT_CONTROL_TEXT_PRESENT", sẽ được thông qua. Plugin tìm kiếm cụm từ điều khiển "Test passed with login" (Thông qua kiểm thử bằng tên đăng nhập) được xác định vĩnh viễn trong mẫu của bạn. Thẻ tự động đóng và hiển thị ảnh chụp nhanh của phiên trong trường kết quả.
Ví dụ về kết quả

Có thể nhận dữ liệu ảnh chụp nhanh tương tự từ API. Tuy nhiên, để mẫu của bạn khả dụng trong API, chúng tôi sẽ cần xuất bản mẫu này trước.

Mẫu xuất bản

Bạn có 2 lựa chọn khi xuất bản mẫu: đặt ở chế độ riêng tư hoặc công khai.
  • Mẫu riêng tư chỉ khả dụng khi có khóa API của bạn. Những khách hàng khác không thể sử dụng mẫu riêng tư. Chi phí đánh giá và xuất bản: $1.
  • Mẫu công khai khả dụng cho tất cả mọi người. Bạn sẽ nhận 5% chi phí sử dụng mẫu với mỗi khách hàng. Bạn cần để lại thông tin liên hệ để khách hàng của chúng tôi liên hệ trợ giúp khi có vấn đề xảy ra với mẫu. Chi phí đánh giá và xuất bản: $1.
Chúng tôi sẽ cẩn thận đánh giá tất cả các mẫu. Bạn cần tuân theo một số yêu cầu cơ bản để chuyển sang chế độ sản xuất thành công:
  • Không được phép thực hiện bất kỳ hoạt động bất hợp pháp nào.
  • Không được sao chép mẫu từ các mẫu đã có.
  • Không gửi mẫu giả hoặc mẫu kiểm thử.
  • Cung cấp địa chỉ web minh họa và các giá trị biến để đánh giá. Chúng tôi sẽ chạy kiểm thử và sẽ cần hoàn thành tất cả các bước.

Yêu cầu API

Yêu cầu tạo tác vụ tới API cho mẫu AntiGate ở trên sẽ có dạng đơn giản như sau:

curl -i -H "Accept: application/json" \
     -H "Content-Type: application/json" \
     -X POST -d '{
    "clientKey":"YOUR_API_KEY",
    "task":
        {
            "type":"AntiGateTask",
            "websiteURL":"https://anti-captcha.com/demo/?page=recaptcha_v2_textarea",
            "templateName":"Demo sign-in at anti-captcha.com #123456",
            "variables": {
                "login":"some value",
                "password":"some value"
            }
        }
}' https://api.anti-captcha.com/createTask

Nghĩa là, bạn chuyển tham số “templateName” và “variables” để điền vào mẫu.

Sử dụng kết quả tác vụ

Đã hoàn thành thành công tác vụ AntiGate trả về lời giải bao gồm "cookie", "localStorage", "fingerprint" và "url". Những gì phần mềm của bạn cần làm là điều hướng đến "url" bằng "cookie" trong yêu cầu này và sử dụng giá trị "fingerprint.self.navigator.userAgent" cho Tác nhân người dùng của trình duyệt. Các trang web phức tạp hơn lưu trữ dữ liệu quan trọng trong localStorage, đây là một loại cookie phiên bản hiện đại. Trong trường hợp đó, bạn sẽ cần đưa dữ liệu này vào trang trước khi chạy Javascript. Thao tác này có thể được thực hiện trong môi trường phát triển như Puppeteer. Chủ đề này sẽ được phân tích kỹ hơn trong một bài viết khác.

Tạo mẫu của riêng bạn

Bạn chỉ cần làm theo các bước trên và không cần tải mẫu ví dụ. Điền rõ tất cả chi tiết và cẩn thận thêm các bước. Lưu ý rằng bạn cần thực hiện tất cả các bước theo đúng thứ tự. Plugin chỉ cho phép thực hiện bước tiếp theo sau khi đã hoàn thành bước hiện tại. Bạn có thể lưu và kiểm thử mẫu bằng plugin trình duyệt của nhân viên bất cứ lúc nào.

Định giá

Tại thời điểm này, chi phí cho 1000 tác vụ đang là 2 USD. Ngoài ra, mỗi giây thực hiện tác vụ sẽ có giá bằng 1/60 giá tác vụ. Ví dụ: giá của tác vụ là 0,002 USD và nhân viên mất 20 giây để xử lý tác vụ này.
Chi phí cuối cùng sẽ là 0,00266 USD = 0,002 + (0,002 / 60 * 20).