ประเภทงาน
Cloudflare challenge page (5 วินาที)
หน้านี้แปลด้วยเครื่องจากเวอร์ชันภาษาจีน อาจมีข้อผิดพลาด โปรดยึดเวอร์ชันภาษาจีนเป็นหลัก
example.com
กำลังตรวจสอบว่าคุณเป็นมนุษย์ อาจใช้เวลาสักครู่
กำลังตรวจสอบ...ยืนยันว่าคุณเป็นมนุษย์สำเร็จ!CLOUDFLAREความเป็นส่วนตัว • ข้อกำหนดexample.com ต้องตรวจสอบความปลอดภัยของการเชื่อมต่อของคุณก่อนดำเนินการต่อ
example.com
กำลังตรวจสอบว่าคุณเป็นมนุษย์ อาจใช้เวลาสักครู่
กำลังตรวจสอบ...ยืนยันว่าคุณเป็นมนุษย์สำเร็จ!CLOUDFLAREความเป็นส่วนตัว • ข้อกำหนดexample.com ต้องตรวจสอบความปลอดภัยของการเชื่อมต่อของคุณก่อนดำเนินการต่อ
Cloudflare challenge page (5 วินาที) คือหน้าตรวจสอบที่ Cloudflare ดักไว้ทั้งหน้าเว็บ โดยแสดงข้อความ “Just a moment…” หรือ “กำลังตรวจสอบเบราว์เซอร์ของคุณ” YesCaptcha จะเปิดหน้าเว็บผ่านพร็อกซีที่คุณระบุและผ่านการตรวจสอบ จากนั้นคืนค่า Cookie เช่น cf_clearance, User-Agent ที่ใช้ในขณะนั้น, request header, response header และ HTML ของหน้าเว็บหลังผ่านการตรวจสอบ CloudFlareTaskS2 ราคางานละ 25 พอยต์ (≈ $3.75 / 1k) และ CloudFlareTaskS3 ราคางานละ 20 พอยต์ (≈ $3.00 / 1k) พารามิเตอร์ ผลลัพธ์ และประสิทธิภาพของทั้งสองประเภทเหมือนกัน ต่างกันที่ราคาเท่านั้น คืนผลแบบอะซิงโครนัส งานหนึ่งใช้เวลาประมาณ 6 ถึง 35 วินาที ขึ้นอยู่กับแต่ละเว็บไซต์ หากแก้ไม่สำเร็จหรือหมดเวลา ระบบจะคืนพอยต์อัตโนมัติ
https://api.yescaptcha.com/createTaskendpoint ทั่วโลกhttps://cn.yescaptcha.com/createTaskendpoint จีนกรณีที่ใช้
หัวข้อที่มีชื่อว่า “กรณีที่ใช้”- ซอร์สของหน้ามี
__cf_chl_rt_tkหรือcdn-cgi/challenge-platformและชื่อหน้าคือJust a moment...แสดงว่าเป็นหน้าตรวจสอบแบบ 5 วินาที หน้าตรวจสอบที่ให้ติ๊กช่อง “ยืนยันว่าคุณเป็นมนุษย์” ก็ใช้หน้านี้เช่นกัน - หากเป็นเพียงกล่องยืนยันของ Cloudflare ที่ฝังอยู่ในฟอร์ม นั่นคือ Turnstile ไม่ต้องใช้หน้านี้
- หากใช้ไลบรารีอย่าง requests แล้วได้ 403 และ “Just a moment…” แต่เปิดในเบราว์เซอร์ได้ตามปกติ มักเป็นเพราะถูกบล็อกจาก TLS fingerprint เท่านั้น ให้เปลี่ยนไปใช้ไลบรารีที่เลียนแบบ TLS fingerprint ของเบราว์เซอร์ได้ (เช่น curl_cffi) ก็จะเรียกได้ โดยไม่ต้องผ่านการตรวจสอบ
ประเภทงานและราคา
หัวข้อที่มีชื่อว่า “ประเภทงานและราคา”| ประเภทงาน | ราคา | รูปแบบการคืนผลลัพธ์ | หมายเหตุ |
|---|---|---|---|
CloudFlareTaskS2 | $3.75 / 1k; 25 พอยต์/งาน · ¥25 / 1k | แบบอะซิงโครนัส | ใช้พร็อกซีของคุณเอง |
CloudFlareTaskS3 | $3.00 / 1k; 20 พอยต์/งาน · ¥20 / 1k | แบบอะซิงโครนัส | ใช้พร็อกซีของคุณเอง |
ราคาเป็นดอลลาร์สหรัฐเป็นเพียงค่าประมาณที่ US$1 ≈ ¥6.67 งานจะถูกหักเป็นพอยต์
พารามิเตอร์ของคำขอ
หัวข้อที่มีชื่อว่า “พารามิเตอร์ของคำขอ”| ฟิลด์ | ประเภท | จำเป็น | คำอธิบาย |
|---|---|---|---|
type | string | ใช่ | ประเภทงาน ดูค่าที่ใช้ได้ในหัวข้อ "ประเภทงานและราคา" ของหน้านี้ |
websiteURL | string | ใช่ | URL แบบเต็มของหน้าเว็บที่อยู่หลังหน้าตรวจสอบ ต้องเป็น URL สาธารณะที่ขึ้นต้นด้วย http:// หรือ https:// เท่านั้น ระบบจะปฏิเสธ IP ภายในเครือข่ายและชื่อโฮสต์ภายในเครื่องหรือภายในเครือข่าย เช่น localhost |
proxy | string | ใช่ | พร็อกซีในรูปแบบสตริงเดียว: http://user:[email protected]:8080 (พร็อกซี HTTP ระบุบัญชีและรหัสผ่านหรือไม่ก็ได้) หรือ socks5://proxy.example.com:1080 (ไม่มีบัญชีและรหัสผ่าน) ไม่รองรับพร็อกซี https:// และ SOCKS5 ที่มีบัญชีและรหัสผ่าน และจะปฏิเสธแอดเดรสภายในเครื่องหรือภายในเครือข่าย ทุกคำขอที่เปิดหน้าเว็บเป้าหมายจะผ่านพร็อกซีนี้ |
userAgent | string | ไม่ | โดยทั่วไปไม่ต้องส่ง ระบบใช้เฉพาะ User-Agent ของ Chrome บนเดสก์ท็อป Linux เท่านั้น ค่าอื่น (Windows, macOS, มือถือ, เบราว์เซอร์อื่น) จะถูกละเว้น สำหรับคำขอถัดไปให้ใช้ user_agent จากผลลัพธ์เสมอ |
waitLoad | boolean | ไม่ | ค่าเริ่มต้นคือ false หากส่ง true หลังผ่านการตรวจสอบแล้ว งานจะรอจนกิจกรรมเครือข่ายของหน้าเว็บสงบลงก่อนจึงคืนผลลัพธ์ ทำให้ content มีเนื้อหาที่โหลดแบบไดนามิกมากขึ้น แต่ใช้เวลาเพิ่มอีกไม่กี่วินาที |
requiredCookies | array | ไม่ | รายชื่อ Cookie ที่ต้องได้รับ เป็นอาร์เรย์ของสตริง เช่น ["cf_clearance"] หากระบุ งานจะสำเร็จก็ต่อเมื่อได้ครบทั้งหมด มิฉะนั้นจะคืน ERROR_CAPTCHA_UNSOLVABLE และคืนพอยต์ หากไม่ระบุ ระบบจะพยายามขอ cf_clearance แต่ถ้าได้ Cookie อื่นเท่านั้นก็ถือว่าสำเร็จและหักพอยต์ ดังนั้นหากต้องการ cf_clearance ให้ระบุอย่างชัดเจน |
blockImage | boolean | ไม่ | หากส่ง true จะไม่โหลดรูปภาพบนหน้าเว็บเป้าหมาย (ยกเว้นรูปที่การตรวจสอบของ Cloudflare ต้องใช้) เพื่อประหยัดทราฟฟิกของพร็อกซี |
postData | object | ไม่ | หากระบุ ระบบจะส่งไปยัง websiteURL ด้วย POST แบบเดียวกับฟอร์ม HTML ทั่วไป (application/x-www-form-urlencoded) โดยแต่ละคีย์คือช่องของฟอร์มและค่าจะถูกส่งเป็นสตริง เช่น {"name": "hi"} ต้องเป็นอ็อบเจกต์ |
ข้อกำหนดของพร็อกซี
หัวข้อที่มีชื่อว่า “ข้อกำหนดของพร็อกซี”ต้องระบุ proxy และทุกคำขอที่เปิดหน้าเว็บเป้าหมายจะผ่านพร็อกซีนี้ cf_clearance ผูกกับ IP ขาออก ดังนั้นการเข้าเว็บไซต์เป้าหมายหลังจากนี้ต้องใช้พร็อกซีตัวเดียวกัน
| รูปแบบ | รองรับหรือไม่ |
|---|---|
http://user:[email protected]:8080 |
รองรับ: พร็อกซี http แบบมีบัญชีและรหัสผ่าน |
http://proxy.example.com:8080 |
รองรับ: พร็อกซี http แบบไม่มีบัญชีและรหัสผ่าน |
socks5://proxy.example.com:1080 |
รองรับ: พร็อกซี socks5 แบบไม่มีบัญชีและรหัสผ่าน socks5h:// จะถูกจัดการเหมือน socks5:// |
socks5://user:[email protected]:1080 |
ไม่รองรับ คืนค่า ERROR_PROXY_INCORRECT หากต้องใช้บัญชีและรหัสผ่านให้ใช้พร็อกซี http แทน |
https://proxy.example.com:443 หรือโปรโตคอลอื่น หรือไม่มีพอร์ต |
ไม่รองรับ คืนค่า ERROR_PROXY_BANNED ไม่ใช่ แต่คืนค่า ERROR_PROXY_INCORRECT |
ที่อยู่เครื่องตัวเอง เครือข่ายภายใน หรือที่อยู่สงวน เช่น 127.0.0.1, 192.168.x.x, 10.x.x.x หรือโดเมนที่ resolve ไปยังที่อยู่เหล่านี้ |
ปฏิเสธ คืนค่า ERROR_PROXY_BANNED |
User-Agent
หัวข้อที่มีชื่อว่า “User-Agent”โดยทั่วไปไม่ต้องส่ง userAgent เราใช้ Chrome เดสก์ท็อปบน Linux ในการผ่านการตรวจสอบ ดังนั้นจะใช้เฉพาะ User-Agent ของ Chrome เดสก์ท็อปบน Linux เท่านั้น ส่วนอื่น ๆ (Windows, macOS, มือถือ หรือเบราว์เซอร์อื่น) จะถูกละเลย เพราะจากการทดสอบจริง หากสภาพแวดล้อมจริงของเบราว์เซอร์ไม่ตรงกับ User-Agent การตรวจสอบของ Cloudflare จะไม่ผ่าน คำขอถัดไปทั้งหมดให้ใช้ user_agent จากผลลัพธ์
ตัวอย่างคำขอ
หัวข้อที่มีชื่อว่า “ตัวอย่างคำขอ”{ "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "CloudFlareTaskS3", "websiteURL": "https://example.com/", "requiredCookies": ["cf_clearance"] }}- หากต้องการใช้
CloudFlareTaskS2ให้เปลี่ยนเฉพาะtypeส่วนอื่นเหมือนเดิม - หากส่ง
requiredCookiesเป็น["cf_clearance"]แล้วไม่ได้cf_clearanceงานจะล้มเหลวและคืนพอยต์ หากไม่ส่ง กรณีที่ไม่ได้cf_clearanceแต่ได้ Cookie อื่น ก็ถือว่าสำเร็จและหักพอยต์ - หากต้องการส่งฟอร์ม ให้เพิ่ม
postDataเช่น{"name": "hi"}ระบบจะส่งไปยังwebsiteURLในรูปแบบ POST form
หลังสร้างงาน ให้เรียก getTaskResult ทุก 5 วินาที ขั้นตอนเหมือนงานแบบอะซิงโครนัสอื่น ๆ ดู getTaskResult
ผลลัพธ์
หัวข้อที่มีชื่อว่า “ผลลัพธ์”{ "errorId": 0, "status": "ready", "solution": { "user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/155.0.0.0 Safari/537.36", "cookies": { "cf_clearance": "Wq3vXk9...-1760860800-1.2.1.1-..." }, "request_headers": { "accept-language": "en-US,en;q=0.9", "user-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/155.0.0.0 Safari/537.36" }, "headers": { "content-type": "text/html; charset=UTF-8", "server": "cloudflare" }, "content": "<!DOCTYPE html>..." }}ค่า Cookie และ request header ข้างต้นเป็นเพียงตัวอย่าง ให้ใช้ค่าที่ API คืนมาจริง
| ฟิลด์ | ประเภท | คำอธิบาย |
|---|---|---|
cookies | object | Cookie ทั้งหมดในเบราว์เซอร์หลังผ่านการตรวจสอบ (ออบเจ็กต์แบบชื่อเป็นค่า) โดยทั่วไปมี cf_clearance หากระบุ requiredCookies จะมีทุกรายการในนั้นรวมอยู่ด้วย ใช้ร่วมกับ user_agent ที่คืนมาและพร็อกซีที่คุณระบุ |
user_agent | string | User-Agent ที่เบราว์เซอร์ใช้จริงในการผ่านการตรวจสอบ (Chrome เดสก์ท็อปบน Linux) cf_clearance ผูกกับค่านี้ คำขอถัดไปทั้งหมดจึงต้องใช้ค่านี้ |
request_headers | object | request header ที่เบราว์เซอร์ส่งในคำขอล่าสุดไปยังหน้าเว็บเป้าหมาย แนะนำให้ใช้ซ้ำในคำขอถัดไป |
headers | object | response header ของหน้าเว็บเป้าหมายหลังผ่านการตรวจสอบ |
content | string | ซอร์ส HTML ของหน้าเว็บเป้าหมายหลังผ่านการตรวจสอบ |
วิธีใช้ผลลัพธ์
หัวข้อที่มีชื่อว่า “วิธีใช้ผลลัพธ์”- คำขอถัดไปต้องใช้
cookiesที่คืนมา,user_agentที่คืนมา และพร็อกซีตัวเดียวกับตอนสร้างงานพร้อมกันcf_clearanceผูกกับ User-Agent และ IP ขาออก หากอย่างใดอย่างหนึ่งไม่ตรงกัน หน้าตรวจสอบ 5 วินาทีจะปรากฏอีกครั้ง - ควรส่ง request header ตาม
request_headersและใช้ TLS fingerprint ที่ตรงกับเบราว์เซอร์ (เช่น พารามิเตอร์impersonateของ curl_cffi) cf_clearanceมีอายุการใช้งาน (กำหนดโดยเว็บไซต์เป้าหมาย บางเว็บนานถึง 1 ชั่วโมง) ภายในช่วงนี้ไม่ต้องผ่านการตรวจสอบซ้ำ หากส่งคำขอถี่เกินไป Cloudflare อาจบล็อก IP- หากต้องการเพียงเนื้อหาของหน้าเว็บ ใช้
contentได้โดยตรง ไม่ต้องขอหน้าเว็บอีกครั้ง
ข้อผิดพลาดที่พบบ่อย
หัวข้อที่มีชื่อว่า “ข้อผิดพลาดที่พบบ่อย”ข้อผิดพลาดที่คืนตอนสร้างงานจะไม่หักพอยต์ หากสร้างงานสำเร็จแล้วล้มเหลวหรือหมดเวลา ระบบจะคืนพอยต์อัตโนมัติ API คืนเพียงรหัสข้อผิดพลาดและคำอธิบายทั่วไป สาเหตุที่แท้จริงให้ดูจากตารางด้านล่าง
| รหัสข้อผิดพลาด | คืนค่าเมื่อใด | แก้ไขอย่างไร |
|---|---|---|
ERROR_REQUIRED_FIELDS |
ตอนสร้างงาน: ไม่มี websiteURL หรือ proxy |
เพิ่มฟิลด์ที่จำเป็นทั้งสองรายการ |
ERROR_ILLEGAL_PARAMETERS |
ตอนสร้างงาน: websiteURL ไม่ใช่ URL สาธารณะที่ขึ้นต้นด้วย http:// / https://, postData ไม่ใช่ object หรือ requiredCookies ไม่ใช่อาร์เรย์ของสตริง ตอนเรียกดูผลลัพธ์: resolve โดเมนของ URL เป้าหมายผ่านพร็อกซีไม่ได้ |
แก้ไขพารามิเตอร์ ตรวจสอบการสะกด URL และดูว่าพร็อกซีเข้าถึงเว็บไซต์นี้ได้หรือไม่ |
ERROR_PROXY_INCORRECT |
ตอนสร้างงาน: รูปแบบพร็อกซีไม่ถูกต้อง ไม่มีพอร์ต ใช้พร็อกซี https:// หรือ socks5 ที่มีบัญชีและรหัสผ่าน |
แก้ตามรูปแบบใน “ข้อกำหนดของพร็อกซี” ข้างต้น หากต้องใช้บัญชีและรหัสผ่านให้ใช้พร็อกซี http |
ERROR_PROXY_BANNED |
ตอนสร้างงาน: พร็อกซีเป็นที่อยู่เครื่องตัวเอง เครือข่ายภายใน หรือที่อยู่สงวน หรือพร็อกซีนี้เชื่อมต่อไม่ได้หลายครั้งในเวลาสั้น ๆ ตอนเรียกดูผลลัพธ์: Cloudflare ของเว็บไซต์เป้าหมายบล็อก IP ของพร็อกซีนี้โดยตรง (หน้า “Sorry, you have been blocked”, “Access denied”) | เปลี่ยนพร็อกซี IP คุณภาพดีผ่านได้ง่ายกว่า |
ERROR_PROXY_CONNECT_REFUSED |
เชื่อมต่อพร็อกซีไม่ได้ (ปฏิเสธการเชื่อมต่อ หรือ resolve โดเมนของพร็อกซีไม่ได้) หรือเปิดหน้าเว็บผ่านพร็อกซีแล้วการเชื่อมต่อถูกปฏิเสธหรือถูก reset | ตรวจสอบที่อยู่และพอร์ตของพร็อกซี ยืนยันว่าพร็อกซีออนไลน์และอนุญาตการเข้าถึงจากภายนอก หากยังล้มเหลวให้เปลี่ยนพร็อกซี |
ERROR_PROXY_CONNECT_TIMEOUT |
เชื่อมต่อพร็อกซี หรือเปิดหน้าเว็บผ่านพร็อกซี แล้วหมดเวลา | เปลี่ยนไปใช้พร็อกซีที่เร็วและเสถียรกว่า |
ERROR_PROXY_NOT_AUTHORISED |
บัญชีหรือรหัสผ่านของพร็อกซีไม่ถูกต้อง | ตรวจสอบบัญชีและรหัสผ่านใน proxy อักขระพิเศษต้องทำ URL encode |
ERROR_PROXY_TLS_ERROR |
TLS handshake ผิดพลาดตอนเปิดหน้าเว็บผ่านพร็อกซี | ตรวจสอบว่าที่อยู่ พอร์ต และโปรโตคอลของพร็อกซีไม่ได้กรอกผิด หากยังล้มเหลวให้เปลี่ยนพร็อกซี |
ERROR_CAPTCHA_UNSOLVABLE |
ไม่ผ่านการตรวจสอบภายในเวลาที่กำหนด ผ่านแล้วแต่ยังค้างอยู่ที่หน้าตรวจสอบ หรือไม่ได้ Cookie ที่ระบุใน requiredCookies |
เปลี่ยนพร็อกซีแล้วลองใหม่ สำหรับบางเว็บไซต์ติดต่อฝ่ายสนับสนุนได้ |
ERROR_NO_SLOT_AVAILABLE |
ตอนสร้างงาน: คิวเต็ม ตอนเรียกดูผลลัพธ์: รอคิวนานเกินไปและยังไม่เริ่ม คืนพอยต์แล้ว | รอสองสามวินาทีแล้วสร้างงานใหม่ |
ERROR_TASK_TIMEOUT |
งานไม่เสร็จภายในเวลาที่กำหนด | สร้างงานใหม่ หากหมดเวลาต่อเนื่อง มักเป็นเพราะพร็อกซีช้าเกินไป |
ดูรหัสข้อผิดพลาดทั้งหมดที่ รหัสข้อผิดพลาด
ที่เกี่ยวข้อง
หัวข้อที่มีชื่อว่า “ที่เกี่ยวข้อง”- วิธีระบุประเภท CAPTCHA: ความแตกต่างระหว่างหน้าตรวจสอบ 5 วินาทีกับ Turnstile
- Cloudflare Turnstile