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

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

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.

Hızlı başlangıç

Kurulum

Komut dosyası paketi, paket yükleyici kullanılarak veya manuel olarak kurulabilir.

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.

Yapılandırma

Kurulu paketi yapılandırmak için gerekli tüm parametrelerin açıklaması

Api2Captcha sınıfının bir örneği şu şekilde oluşturulabilir:

client = Api2Captcha.new('YOUR_API_KEY')

Ayrıca, oluşturulan örnek için bazı seçenekleri özelleştirebilirsiniz:

client = Api2Captcha.new("YOUR_API_KEY")
client.api_key = "YOUR_API_KEY"
Api2Captcha örnek seçenekleri
SeçenekVarsayılan değerTanım
soft_id-2Captcha yazılım kataloğunda yayınladıktan sonra elde edilen yazılım kimliğiniz
callback-Captcha tanıma sonucunu alan web sunucunuzun URL'si. URL önce hesabınızın pingback ayarlarına kaydedilmelidir.
default_timeout120reCAPTCHA dışındaki tüm captcha türleri için saniye cinsinden yoklama zaman aşımı. Modülün yanıtı res.php API uç noktasından ne kadar süreyle almaya çalıştığını tanımlar.
recaptcha_timeout600Saniye cinsinden reCAPTCHA için yoklama zaman aşımı. Modülün yanıtı res.php API uç noktasından ne kadar süreyle almaya çalıştığını tanımlar.
polling_interval10res.php API uç noktasına yapılan istekler arasındaki saniye cinsinden aralık, değerlerin 5 saniyeden kısa ayarlanması önerilmez
ÖNEMLİ: callback, Api2Captcha örneği için tanımlandıktan sonra, tüm yöntemler yalnızca captcha kimliğini ve DO'yu döndürür Sonucu almak için API'yi yoklamayın. Sonuç, geri arama URL'sine gönderilecektir. Cevabı manuel olarak almak için Sonucu al yöntemini kullanın.

Captcha'yı çöz

Herhangi bir resim tabanlı captcha gönderdiğinizde, 2Captcha çalışanlarının sorunu düzgün bir şekilde çözmesine yardımcı olacak ek seçenekler sunabilir.

Captcha seçenekleri
SeçenekVarsayılan değerTanım
numeric0Captcha'nın sayısal veya başka simgeler içerip içermediğini tanımlar API belgelerinde daha fazla bilgi görün
min_len0minimum cevap uzunluğu
max_len0maksimum cevap uzunluğu
phrase0cevabın birden fazla kelime içerip içermediğini tanımlar
case_sensitive0cevabın büyük/küçük harfe duyarlı olup olmadığını tanımlar
calc0captcha'yı tanımlar hesaplama gerektirir
lang-captcha dilini tanımlar, desteklenen dillerin listesine bakın
hint_image-captcha ile çalışanlara gösterilen ipucu içeren bir resim
hint_text-captcha ile çalışanlara gösterilen ipucu veya görev metni
basitCaptcha

Normal bir captcha'yı (görüntüdeki bozuk metin) atlamak için aşağıdaki yöntemi kullanın. Bu yöntem aynı zamanda görüntüdeki herhangi bir metni tanımak için de kullanılabilir.

metinCaptcha

Bu yöntem, açık metin olarak sağlanan bir soruyu yanıtlamayı gerektiren bir captcha'yı atlamak için kullanılabilir.

recaptchaV2

reCAPTCHA V2'yi çözmek ve korumayı atlamak için bir belirteç almak için bu yöntemi kullanın.

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

Bu yöntem, reCAPTCHA V3 çözücü sağlar ve bir belirteç döndürür.

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

FunCaptcha (Arkoselabs) çözme yöntemi. Bir belirteç döndürür.

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

GeeTest bulmacası captcha'yı çözme yöntemi. JSON olarak bir dizi belirteç döndürür.

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

KeyCaptcha'yı çözmek için belirteç tabanlı yöntem.

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

Capy bulmacası captcha'sını atlamak için jeton tabanlı yöntem.

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

Grid yöntemi orijinal olarak Eski reCAPTCHA V2 yöntemi olarak adlandırılır. Yöntem, görüntüye bir ızgara uygulayabileceğiniz ve belirli ızgara kutularına tıklamanız gereken herhangi bir tür captcha'yı atlamak için kullanılabilir. Kutu numaralarını döndürür.

result = client.grid({
  image: 'path/to/captcha.jpg',
  rows: 3,
  cols: 3,
  previous_id: 0,
  lang: 'en',
  hint_image: 'path/to/hint.jpg',
  hint_text: 'Select all images with an Orange'
})
canvas

Kanvas yöntemi, resim üzerinde bir nesnenin çevresine bir çizgi çizmeniz gerektiğinde kullanılabilir. Bir çokgen çizmek için bir dizi noktanın koordinatlarını döndürür.

result = client.canvas({
  image: 'path/to/captcha.jpg',
  previous_id: 0,
  lang: 'en',
  hint_image: 'path/to/hint.jpg',
  hint_text: 'Draw around apple'
})
clickCaptcha

ClickCaptcha yöntemi, captcha görüntüsündeki noktaların koordinatlarını döndürür. Resmin belirli noktalarına tıklamanız gerekirse kullanılabilir

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

Bu yöntem, bir nesneyi döndürmeyi isteyen bir captcha'yı çözmek için kullanılabilir. Çoğunlukla FunCaptcha'yı atlamak için kullanılır. Dönme açısını döndürür.

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'
})

Diğer metodlar

Ana komut dosyalarının çalışması sırasında kullanılan ek geçerli yöntemler

send / get_result

Bu yöntemler, manuel captcha gönderimi ve yanıt yoklaması için kullanılabilir.

# 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

Hesabınızın bakiyesini almak için bu yöntemi kullanın.

balance = client.get_balance

report

İyi veya kötü captcha yanıtını bildirmek için bu yöntemi kullanın.

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

Hata yönetimi

İstekler işlenirken hizmet tarafından döndürülen standart hataların olası çeşitleri

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

Hizmet API'si ile entegrasyon için diğer diller