เลี่ยงแคปต์ชาใน Python

เลี่ยงแคปต์ชาใน Python
โลโก้ „Python“
  • โลโก้ „PHP“
  • โลโก้ „Python“
  • โลโก้ „Java“
  • โลโก้ „C#“
  • โลโก้ „Ruby“
  • โลโก้ „Golang“
  • โลโก้ „JavaScript“

รวมแพ็คเกจ Python เพื่อแก้ปัญหา captcha โดยอัตโนมัติบนไซต์ใด ๆ

แพ็คเกจ Python สำหรับการผสานรวมกับ API ของ 2Captcha ได้ง่าย บริการแก้แคปต์ชาเพื่อเลี่ยงผ่าน reCAPTCHA,hCaptcha, Arkose captcha, Geetest และแก้แคปต์ชาอื่นๆ

บายพาสโดยใช้งูหลามและซีลีเนียม. ที่เก็บข้อมูลที่มีสคริปต์พร้อมต่อการใช้งานสำหรับอัตโนมัติกระบวนการแก้แจ้งลบความคิดเห็

เริ่มต้นอย่างรวดเร็ว

การติดตั้ง

แพ็คเกจสคริปต์สามารถติดตั้งได้โดยใช้ตัวติดตั้งแพ็คเกจหรือด้วยตนเอง

Pip

ในการติดตั้งแพ็คเกจไลบรารีโดยอัตโนมัติ คุณต้องใช้โซลูชันแพ็คเกจ Python มาตรฐาน - Pip ดาวน์โหลดจาก ลิงค์ และติดตั้งตามคำแนะนำ หลังจากติดตั้งแอปพลิเคชั่นแล้ว ให้ใช้คำสั่ง:

pip3 install 2captcha-python

เราขอเชิญคุณสำรวจ GitHub ของเรา พื้นที่เก็บข้อมูลที่คุณสามารถค้นหาไลบรารีและโมดูลสำหรับการผสานรวมกับ API ของเราได้อย่างง่ายดาย

การกำหนดค่า

คำอธิบายที่จำเป็นทั้งหมดของพารามิเตอร์เพื่อกำหนดค่าแพ็คเกจที่ติดตั้ง

ตัวอย่างของคลาส TwoCaptcha สามารถสร้างได้ดังนี้

from twocaptcha import TwoCaptcha

solver = TwoCaptcha('YOUR_API_KEY')

คุณยังสามารถปรับแต่งตัวเลือกบางอย่างสำหรับตัวอย่างที่สร้างขึ้นได้:

config = {
            'server':           '2captcha.com',
            'apiKey':           'YOUR_API_KEY',
            'softId':            123,
            'callback':         'https://your.site/result-receiver',
            'defaultTimeout':    120,
            'recaptchaTimeout':  600,
            'pollingInterval':   10,
        }
solver = TwoCaptcha(**config)
ตัวเลือกอินสแตนซ์ TwoCaptcha
ตัวเลือกค่าเริ่มต้นคำอธิบาย
เซิร์ฟเวอร์'2captcha.com'API เซิร์ฟเวอร์ สามารถตั้งค่าเป็น 'rucaptcha.com' หากบัญชีของคุณลงทะเบียนที่นั่น
softId-รหัสซอฟต์แวร์ของคุณที่ได้รับหลังจากเผยแพร่ใน 2Captcha แคตตาล็อกซอฟต์แวร์
โทรกลับ-URL ของเว็บเซิร์ฟเวอร์ของคุณที่ได้รับผลการจดจำแคปต์ชา URL ควรลงทะเบียนครั้งแรกใน การตั้งค่า pingback ของบัญชีของคุณ
defaultTimeout120หมดเวลาโพลเป็นวินาทีสำหรับแคปต์ชาทุกประเภท ยกเว้น reCAPTCHA กำหนดระยะเวลาที่โมดูลพยายามรับคำตอบจาก res.php ปลายทาง API
recaptchaTimeout600หมดเวลาโพลสำหรับ reCAPTCHA ในไม่กี่วินาที กำหนดระยะเวลาที่โมดูลพยายามรับคำตอบจาก res.php ปลายทาง API
pollingInterval10ช่วงเวลาเป็นวินาทีระหว่างคำขอถึง res.php ปลายทาง API ไม่แนะนำให้ตั้งค่าน้อยกว่า 5 วินาที
สำคัญ: เมื่อcallback ถูกกำหนดไว้สำหรับ TwoCaptcha ตัวอย่างเช่น วิธีทั้งหมดจะคืนค่าเฉพาะ captcha ID และอย่าสำรวจ API เพื่อรับผลลัพธ์ ผลลัพธ์จะถูกส่งไปยัง callback URL เพื่อรับคำตอบด้วยตนเอง ใช้ วิธีรับผลลัพธ์

แก้ไขแคปต์ช่า

เมื่อคุณกดการใช้แคปต์ช่าแบบรูปภาพจะมีตัวเลือกเพิ่มเติมเพื่อช่วย 2Captcha พนักงานแก้ไขให้ถูกต้อง

ตัวเลือกแคปต์ช่า
ตัวเลือกค่าเริ่มต้นคำอธิบาย
numeric0กำหนดว่าแคปต์ชามีตัวเลขหรือสัญลักษณ์อื่นหรือไม่ ดูข้อมูลเพิ่มเติมในเอกสาร API
minLength0ความยาวของคำตอบขั้นต่ำ
maxLength0ความยาวของคำตอบสูงสุด
phrase0กำหนดว่าคำตอบมีหลายคำหรือไม่
caseSensitive0กำหนดว่าคำตอบนั้นคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่หรือไม่
calc0กำหนดแคปต์ชาที่ต้องคำนวณ
lang-กำหนดภาษาแคปต์ชา ดู รายการภาษาที่รองรับ
hintImg-รูปภาพพร้อมคำใบ้ที่โชว์ให้พนักงานที่มีแคปต์ชา
hintText-คำใบ้หรือข้อความงานที่แสดงต่อผู้ปฏิบัติงานด้วยแคปต์ชา
simpleCaptcha

ในการเลี่ยงผ่านแคปต์ชาปกติ (ข้อความบนภาพบิดเบี้ยว) ให้ใช้วิธีต่อไปนี้ วิธีนี้สามารถใช้เพื่อตรวจสอบข้อความบนรูปภาพได้

result = solver.normal('path/to/captcha.jpg', param1=..., ...)
แคปต์ช่าข้อความ

วิธีนี้สามารถใช้เพื่อหลีกเลี่ยงแคปต์ชาที่ต้องตอบคำถามที่ระบุเป็นข้อความที่ชัดเจน

recaptchaV2

ใช้วิธีนี้เพื่อแก้ปัญหา reCAPTCHA V2 และรับโทเค็นเพื่อเลี่ยงการป้องกัน

result = solver.recaptcha(sitekey='6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-',
  url='https://mysite.com/page/with/recaptcha',
  param1=..., ...)
recaptchaV3

เมธอดที่จัดเตรียมโปรแกรมแก้ไขปัญหา reCAPTCHA V3 และส่งคืนโทเค็น

result = solver.recaptcha(sitekey='6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-',
  url='https://mysite.com/page/with/recaptcha',
  version='v3',
  param1=..., ...)
funCaptcha

วิธีการแก้ FunCaptcha (Arkoselabs) ส่งคืนโทเค็น

result = solver.funcaptcha(sitekey='6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-',
  url='https://mysite.com/page/with/funcaptcha',
  param1=..., ...)
geeTest

วิธีแก้ไขปัญหา GeeTest puzzle Captcha โดยส่งกลับชุดของโทเค็นเป็น JSON

result = solver.geetest(gt='f1ab2cdefa3456789012345b6c78d90e',
  challenge='12345678abc90123d45678ef90123a456b',
  url='https://www.site.com/page/',
  param1=..., ...)
hCaptcha

ใช้วิธีนี้เพื่อแก้ไขปัญหา hCaptcha challenge ส่งคืนโทเค็นเพื่อเลี่ยงแคปต์ชา

result = solver.hcaptcha(sitekey='10000000-ffff-ffff-ffff-000000000001',
  url='https://www.site.com/page/', 
  param1=..., ...)
keyChptcha

วิธีการที่ใช้โทเค็นเพื่อแก้ปัญหา KeyCaptcha

capy

วิธีที่ใช้โทเค็นเพื่อเลี่ยงผ่านแคปต์ชา Capy puzzle

result = solver.capy(sitekey='PUZZLE_Abc1dEFghIJKLM2no34P56q7rStu8v',
  url='http://mysite.com/',
  api_server='https://jp.api.capy.me/',
  param1=..., ...)
grid

วิธี Grid เรียกว่าวิธี Old reCAPTCHA V2 วิธีนี้สามารถใช้เพื่อหลีกเลี่ยงแคปต์ชาประเภทใดก็ได้ ซึ่งคุณสามารถใช้กริดกับรูปภาพและจำเป็นต้องคลิกช่องกริดเฉพาะ ส่งกลับจำนวนกล่อง

result = solver.grid('path/to/captcha.jpg', param1=..., ...)
canvas

คุณสามารถใช้วิธี Canvas เมื่อคุณต้องการวาดเส้นรอบวัตถุบนรูปภาพ ส่งกลับชุดพิกัดของจุดเพื่อวาดรูปหลายเหลี่ยม

result = solver.canvas('path/to/captcha.jpg', param1=..., ...)
clickCaptcha

วิธี ClickCaptcha จะคืนค่าพิกัดของจุดบนรูปภาพแคปต์ชา สามารถใช้ได้หากต้องการคลิกเฉพาะจุดบนภาพ

result = solver.coordinates('path/to/captcha.jpg', param1=..., ...)
หมุนแคปต์ช่า

วิธีนี้สามารถใช้แก้แคปต์ชาที่ขอให้หมุนวัตถุได้ ส่วนใหญ่ใช้เพื่อเลี่ยงผ่าน FunCaptcha ส่งกลับมุมการหมุน

วิธีอื่นๆ

วิธีการที่ถูกต้องเพิ่มเติมที่ใช้ในระหว่างการทำงานของสคริปต์หลัก

send / getResult

วิธีการเหล่านี้สามารถใช้สำหรับการส่งแคปต์ช่าด้วยตนเองและการตอบแบบสำรวจความคิดเห็น

import time
. . . . . 

id = solver.send(file='path/to/captcha.jpg')
time.sleep(20)

code = solver.get_result(id)

balance

ใช้วิธีนี้เพื่อรับยอดเงินในบัญชีของคุณ

balance = solver.balance()

report

ใช้วิธีนี้เพื่อรายงานคำตอบแคปต์ช่าที่ดีหรือไม่ดี

solver.report(id, True) # captcha solved correctly
solver.report(id, False) # captcha solved incorrectly

การจัดการข้อผิดพลาด

ข้อผิดพลาดมาตรฐานที่เป็นไปได้ที่ส่งคืนโดยบริการเมื่อประมวลผลคำขอ

หากตัวแก้ไขแคปต์ชาเกิดข้อผิดพลาดส่งข้อยกเว้น การจัดการกรณีเหล่านี้อย่างเหมาะสมเป็นสิ่งสำคัญ เราแนะนำให้ใช้ try/except เพื่อจัดการกับข้อยกเว้น

Try:
    result = solver.text('If tomorrow is Saturday, what day is today?')
Except ValidationException as e:
    # invalid parameters passed
  print(e)
Except NetworkException as e:
  # network error occurred
  print(e)
Except ApiException as e:
  # api respond with error
  print(e)
Except TimeoutException as e:
  # captcha is not solved so far
  print(e)

พร็อกซี

คุณสามารถส่งพร็อกซีของคุณเป็นข้อโต้เถียงเพิ่มเติมสำหรับวิธี: recaptcha, funcaptcha และ geetest พร็อกซีจะถูกส่งต่อไปยัง API เพื่อแก้ไขแคปต์ชา

proxy={
    'type': 'HTTPS',
    'uri': 'login:password@IP_address:PORT'
}

การโทรแบบอะซิงโครนัส

คุณยังสามารถโทรแบบอะซิงโครนัสด้วย asyncio ตัวอย่างเช่น:

import asyncio
import concurrent.futures
from twocaptcha import TwoCaptcha

captcha_result = await captchaSolver(image)

async def captchaSolver(image):
    loop = asyncio.get_running_loop()
    with concurrent.future.ThreadPoolExecutor() as pool:
        result = await loop.run_in_executor(pool, lambda: TwoCaptcha(API_KEY).normal(image))
        return result

ภาษาอื่นๆ สำหรับการรวมกับบริการ API