• Logo „PHP“
  • Logo „Python“
  • Logo „Java“
  • Logo „C#“
  • Logo „Ruby“
  • Logo „Golang“
  • Logo „JavaScript“
Bypass captcha in Ruby

Bypass captcha in Ruby
Logo „Ruby“
  • Logo „PHP“
  • Logo „Python“
  • Logo „Java“
  • Logo „C#“
  • Logo „Ruby“
  • Logo „Golang“
  • Logo „JavaScript“

Ruby gem for easy integration with the API of captcha solving service to bypass reCAPTCHA, Arkose captcha, Geetest and solve any other captchas. This is the easiest way to quickly integrate 2Captcha solving service into code and automate solving of any type of captcha.

Bắt đầu nhanh

Cài đặt

Gói tập lệnh có thể được cài đặt bằng trình cài đặt gói hoặc theo cách thủ công

Bundler

To install a gem, you can use the bundler package manager. Download it from the link and install according to the instructions.

# Gemfile
gem 'ruby-2captcha'

We invite you to explore our GitHub repository where you can find ruby API client for easy integration with our API.

Cấu hình

Mô tả tất cả các thông số cần thiết để cấu hình gói đã cài đặt

Một phiên bản của lớp Api2Captcha có thể được tạo như sau:

client = Api2Captcha.new('YOUR_API_KEY')

Bạn cũng có thể tùy chỉnh một số tùy chọn cho phiên bản đã tạo:

client = Api2Captcha.new("YOUR_API_KEY")
client.api_key = "YOUR_API_KEY"
Tùy chọn phiên bản Api2Captcha
Lựa chọnGiá trị mặc địnhSự mô tả
soft_id-ID phần mềm của bạn nhận được sau khi xuất bản trong 2Captcha danh mục phần mềm
callback-URL của máy chủ web của bạn nhận được kết quả nhận dạng hình ảnh xác thực. URL phải được đăng ký lần đầu trong pingback settings trong tài khoản của bạn
default_timeout120Thời gian chờ thăm dò tính bằng giây cho tất cả các loại hình ảnh xác thực ngoại trừ reCAPTCHA. Xác định thời gian mô-đun cố gắng nhận câu trả lời từ điểm cuối API res.php
recaptcha_timeout600Thời gian chờ thăm dò cho reCAPTCHA tính bằng giây. Xác định thời gian mô-đun cố gắng nhận câu trả lời từ điểm cuối API res.php
polling_interval10Khoảng thời gian tính bằng giây giữa các yêu cầu đến điểm cuối API res.php , không nên đặt giá trị dưới 5 giây
IMPORTANT: khi callback được xác định cho trường hợp Api2Captcha , tất cả các phương thức chỉ trả về ID hình ảnh xác thực và DO KHÔNG thăm dò ý kiến API để lấy kết quả. Kết quả sẽ được gửi đến URL gọi lại. Để nhận câu trả lời theo cách thủ công, hãy sử dụng phương thức getResult

Giải quyết hình ảnh xác nhận

Khi bạn gửi bất kỳ hình ảnh xác thực nào, việc sử dụng hình ảnh xác thực có thể cung cấp các tùy chọn bổ sung để giúp nhân viên của 2Captcha giải quyết vấn đề đó một cách chính xác

Các loại Captcha
Lựa chọnGiá trị mặc địnhSự mô tả
numeric0Xác định xem hình ảnh xác thực có chứa số hoặc các ký hiệu khác hay không xem thêm thông tin trong tài liệu API
min_len0độ dài câu trả lời tối thiểu
max_len0độ dài câu trả lời tối đa
phrase0xác định xem câu trả lời có chứa nhiều từ hay không
case_sensitive0xác định xem câu trả lời có phân biệt chữ hoa chữ thường không
calc0xác định captcha cần tính
lang-xác định ngôn ngữ hình ảnh xác thực, xem danh sách các ngôn ngữ được hỗ trợ
hint_image-một hình ảnh có gợi ý được hiển thị cho công nhân bằng hình ảnh xác thực
hint_text-gợi ý hoặc văn bản nhiệm vụ được hiển thị cho nhân viên bằng hình ảnh xác thực
simpleCaptcha

Để bỏ qua hình ảnh xác thực thông thường (văn bản bị bóp méo trên hình ảnh), hãy sử dụng phương pháp sau. Phương pháp này cũng có thể được sử dụng để nhận dạng bất kỳ văn bản nào trên hình ảnh.

result = client.normal({ image: 'path/to/captcha.jpg'})
# OR
result = client.normal({
  image: 'https://site-with-captcha.com/path/to/captcha.jpg'
})
textCaptcha

Phương pháp này có thể được sử dụng để bỏ qua hình ảnh xác thực yêu cầu trả lời câu hỏi được cung cấp bằng văn bản rõ ràng.

result = client.text({
  textcaptcha:'If tomorrow is Saturday, what day is today?',
  lang: "en"
})
recaptchaV2

Sử dụng phương pháp này để giải reCAPTCHA V2 và lấy mã thông báo để vượt qua bảo vệ.

result = client.recaptcha_v2({
  googlekey: '6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-',
  pageurl: 'https://mysite.com/page/with/recaptcha_v2'
})
recaptchaV3

Phương pháp này cung cấp trình giải reCAPTCHA V3 và trả về một mã thông báo.

result = client.recaptcha_v3({
  googlekey: '6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-',
  pageurl: 'https://mysite.com/page/with/recaptcha_v3',
  version: 'v3',
  score: 0.3,
  action: 'verify'
})
funCaptcha

Phương pháp giải FunCaptcha (Arkoselabs). Trả về một mã thông báo.

result = client.funcaptcha({
  publickey: "69A21A01-CC7B-B9C6-0F9A-E7FA06677FFC",
  pageurl: "https://mysite.com/page/with/funcaptcha",
  surl: "https://client-api.arkoselabs.com"
})
geeTest

Phương pháp giải captcha câu đố GeeTest. Trả về một tập hợp các mã thông báo dưới dạng JSON.

result = client.geetest({
  gt: 'f1ab2cdefa3456789012345b6c78d90e',
  api_server: 'api-na.geetest.com',
  challenge: '12345678abc90123d45678ef90123a456b',
  pageurl: 'https://www.site.com/page/'
})
keyCaptcha

Phương pháp dựa trên mã thông báo để giải KeyCaptcha

result = client.keycaptcha({
  s_s_c_user_id: 10,
  s_s_c_session_id: '493e52c37c10c2bcdf4a00cbc9ccd1e8',
  s_s_c_web_server_sign: '9006dc725760858e4c0715b835472f22-pz-',
  s_s_c_web_server_sign2: '2ca3abe86d90c6142d5571db98af6714',
  pageurl: 'https://www.keycaptcha.ru/demo-magnetic/'
})
capy

Phương pháp dựa trên mã thông báo để vượt qua hình ảnh xác thực câu đố Capy.

result = client.capy({
  sitekey: 'PUZZLE_Abc1dEFghIJKLM2no34P56q7rStu8v',
  pageurl: 'http://mysite.com/',
  api_server: 'https://jp.api.capy.me/'
})
Lưới

Phương pháp lưới ban đầu được gọi là phương pháp reCAPTCHA V2 cũ. Phương pháp này có thể được sử dụng để bỏ qua bất kỳ loại hình ảnh xác thực nào mà bạn có thể áp dụng lưới trên hình ảnh và cần nhấp vào các ô lưới cụ thể. Trả về số của hộp.

Canvas

Phương pháp canvas có thể được sử dụng khi bạn cần vẽ một đường bao quanh một đối tượng trên hình ảnh. Trả về một tập hợp các tọa độ điểm để vẽ một đa giác.

clickCaptcha

Phương thức ClickCaptcha trả về tọa độ của các điểm trên hình ảnh captcha. Có thể được sử dụng nếu bạn cần nhấp vào các điểm cụ thể trên hình ảnh.

result = client.coordinates({
  image: 'path/to/captcha.jpg',
  lang: 'en',
  hint_image: 'path/to/hint.jpg',
  hint_text: 'Connect the dots'
})
rotateCaptcha

Phương pháp này có thể được sử dụng để giải quyết một hình ảnh xác thực yêu cầu xoay một đối tượng. Chủ yếu được sử dụng để vượt qua FunCaptcha. Trả về góc quay.

result = client.rotate({
  image: 'path/to/captcha.jpg',
  angle: 40,
  lang: 'en',
  hint_image: 'path/to/hint.jpg',
  hint_text: 'Put the images in the correct way'
})

Các phương pháp khác

Các phương pháp hợp lệ bổ sung được sử dụng trong quá trình làm việc của các tập lệnh chính

send / get_result

Các phương pháp này có thể được sử dụng để gửi captcha thủ công và bỏ phiếu trả lời.

# example for normal captcha
captcha_id = client.send('path/to/captcha.jpg')

# or for another captcha, for example for lemin
captcha_id = client.send({
  method:"lemin",
  captcha_id: "CROPPED_3dfdd5c_d1872b526b794d83ba3b365eb15a200b",
  api_server: "api.leminnow.com",
  div_id: "lemin-cropped-captcha",
  pageurl: "https://www.site.com/page/"
})

time.sleep(20)

# Get result
result = client.get_result(captcha_id)

get_balance

Sử dụng phương pháp này để lấy số dư tài khoản của bạn.

balance = client.get_balance

report

Sử dụng phương pháp này để báo cáo câu trả lời hình ảnh xác thực tốt hoặc xấu.

client.report(captcha_id, True) # captcha solved correctly
client.report(captcha_id, False) # captcha solved incorrectly

Xử lý lỗi

Các biến thể có thể có của lỗi tiêu chuẩn được dịch vụ trả về khi xử lý yêu cầu

If case of an error captcha solver throws an exception. It's important to properly handle these cases. We recommend to use begin/rescue to handle exceptions.

begin
result = client.text('If tomorrow is Saturday, what day is today?')
rescue Api2Captcha::ValidationException => e
  # invalid parameters passed
  puts(e)
rescue Api2Captcha::NetworkException => e
  # network error occurred
  puts(e)
rescue Api2Captcha::ApiException => e
  # api respond with error
  puts(e)
rescue Api2Captcha::TimeoutException => e
  # captcha is not solved so far
  puts(e)
end

Các ngôn ngữ khác để tích hợp với dịch vụ API