Playground
Playground (thanh bên > Playground) cho phép bạn thực hiện các request API trực tiếp bằng API key thực của mình mà không cần viết code. Đây là cách nhanh nhất để thử nghiệm một trang web mục tiêu mới, gỡ lỗi một response phức tạp, hoặc so sánh Auto, Single, Proxy và Browser cạnh nhau.
Mở tại foura.ai/dashboard#playground.
Tính Năng
Một biểu mẫu. Bốn công cụ. Lưu lượng truy cập thực.
- Auto: fetch thông minh. Bạn truyền URL cùng quy tắc
validatevà FourA sẽ chọn đường dẫn rẻ nhất mang lại hiệu quả. - Single: fetch HTTP trực tiếp với các đặc tính wire giống trình duyệt thực tế
- Proxy: fetch qua proxy xoay vòng được quản lý, tùy chọn giới hạn theo các quốc gia hiển thị với mục tiêu
- Browser: mở URL trong một phiên bản trình duyệt Chrome cho các trang web hiển thị bằng JS
Các request chạy bằng API key bạn chọn ở đầu trang. Lượng sử dụng được tính vào hạn mức của key đó tương tự như lệnh gọi trong môi trường production, vì vậy hãy lưu ý để không làm cạn kiệt gói dịch vụ khi thử nghiệm.
Chọn Key
Menu thả xuống API key liệt kê mọi key đang hoạt động mà bạn có thể dùng: key cá nhân trong mục My Keys, và một nhóm cho mỗi tổ chức bạn tham gia. Bất kỳ thành viên nào cũng có thể chạy key của tổ chức, và request sẽ được tính vào gói của chủ sở hữu tổ chức. Hãy chọn key bạn muốn dùng để thanh toán request. Nếu bạn chưa có key nào đang hoạt động, thông báo inline sẽ liên kết bạn tới trang API Keys để tạo mới.
Chọn Chế Độ
Hàng Mode ở trên cùng cho phép chuyển đổi giữa Auto và các công cụ thủ công. Khi Auto được chọn, biểu mẫu chuyển sang giao diện Auto tối giản (URL cùng với validate và một vài nút điều chỉnh). Cả hai hàng luôn hiển thị: Mode: Auto, và Product: Single, Proxy, Browser. Chọn một tùy chọn sẽ bỏ chọn tùy chọn còn lại. Chuyển đổi product sẽ thay đổi các trường hiển thị và công cụ mà request gửi đến. Lựa chọn hiện tại được giữ nguyên khi bạn tải lại trang.
| Mode | Khi nào nên sử dụng |
|---|---|
| Auto | Mục tiêu mới hoặc trang web có nhiều lớp bảo vệ hỗn hợp. Auto chọn đường dẫn rẻ nhất và ghi nhớ phương thức hiệu quả. |
| Single | HTTP fetch nhanh. Lựa chọn đầu tiên tốt nhất cho một host đã biết. |
| Proxy | Fetch tương tự với cơ chế xoay vòng proxy tự động. Thiết lập exitCountries khi bạn cần một quốc gia hiển thị với mục tiêu. |
| Browser | Tải trang trong một phiên bản trình duyệt Chrome. Dùng khi dữ liệu chỉ xuất hiện sau khi JavaScript thực thi. |
Xây Dựng Request
Hàng URL
Hàng trên cùng chứa phương thức HTTP (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS), URL mục tiêu, và nút Send. Single, Proxy và Auto hỗ trợ mọi phương thức. Browser bỏ qua phương thức (Chrome luôn gửi GET khi điều hướng) và phần body.
Các Tab Request
Bên dưới hàng URL, năm tab cho phép bạn điền tất cả các thông tin còn lại:
| Tab | Chức năng điều khiển |
|---|---|
| UI | Các trường biểu mẫu cho timeout, redirect, cờ, proxy, tùy chọn dành riêng cho browser và quy tắc validate |
| Body | Body dạng tự do cho các request POST / PUT / PATCH |
| Headers | Custom request headers dưới dạng cặp key-value |
| Cookies | Cookie gửi kèm theo request |
| Raw | Payload JSON chính xác sẽ được gửi, dưới dạng bản xem trước chỉ đọc với Copy JSON, cùng lệnh curl tái tạo ở bên dưới |
Bất kỳ thay đổi nào trong UI / Body / Headers / Cookies đều được phản ánh trong Raw. Bạn không thể nhập trực tiếp vào Raw: hãy thay đổi request trên các tab khác. Một chấm đỏ sẽ xuất hiện trên bất kỳ tab hoặc phần thu gọn nào chứa giá trị khác với mặc định của engine, giúp bạn nhận biết ngay những mục đã tùy chỉnh.
Các phần trong khung UI
Tab UI nhóm các cài đặt vào những phần có thể thu gọn. Các trường để trống sẽ sử dụng giá trị mặc định theo schema của engine. Các phần không áp dụng cho Mode hiện tại sẽ bị ẩn.
- Timeouts:
timeout_ms,connect_timeout_ms,accept_timeout_ms,server_response_timeout_ms,dns_cache_timeout_sec. Auto chỉ hiển thịtimeout_ms(tổng thời gian phân bổ). - Redirects: bật tắt và đặt
followRedirects(0-20). Áp dụng cho Single và Proxy. Browser tự xử lý chuyển hướng. - Flags:
unblockercho Single, Proxy và Browser (unblockertrên Browser sẽ hoàn tất các bước kiểm tra mà trang yêu cầu);tryJsonDatavàreturnBuffercho Single và Proxy. Auto hiển thịforceProxyvàreturnSessionthay thế. - Proxy: chọn một proxy ID cụ thể cho Single hoặc Browser, hoặc đặt
maxTries, timeout bên ngoài của Proxy,exitCountries,exitClassvàignoreProxiescho engine Proxy. Auto cũng hiển thịignoreProxies. Menu chọnexitClasscó ba trạng thái: chưa đặt sẽ không gửi trường này,standardquy định request không bao giờ được nâng cấp, vàpremiumcho phép nâng cấp lên exit node premium khi pool tiêu chuẩn gặp sự cố. Trạng thái chưa đặt vàstandardlà các request khác nhau, vì vậy hãy để trống menu chọn trừ khi bạn muốn chọn một trong hai. Premium yêu cầu gói dịch vụ có bao gồm exit node premium: xem exitClass. - Browser profile: ba menu thả xuống dạng phân tầng, os, browser và version, liệt kê những cấu hình FourA có thể cung cấp. Chúng xuất hiện trong chế độ Single và Proxy. Để trống để sử dụng Chrome mới nhất. Mỗi mục chọn sẽ thu hẹp hai mục còn lại, đảm bảo không bao giờ xuất hiện tổ hợp không hợp lệ. Phần này cần bật
unblocker: nếu tắt, không có browser header nào được gửi, profile chỉ áp dụng một nửa và API sẽ từ chối request. - Browser: các tùy chọn chỉ dành cho browser như
checkStatusvàcheckText. - Validate: status accept và status fail nhận các mã trạng thái phân tách bằng dấu phẩy (
validate.status), còn body accept và body fail nhận các chuỗi con với các phương án phân tách bằng|(validate.data). Khả dụng cho Single, Proxy và Auto. Browser sử dụngcheckStatusvàcheckTextthay thế. Biểu mẫu không có trường cho các quy tắc header (validate.headers).
Khi một lần chạy trả về proxy hoạt động thành công, phần Working proxies sẽ xuất hiện ở cuối tab giao diện. Phần này liệt kê tối đa 20 proxy ID, mới nhất xếp trước, mỗi proxy đi kèm quốc gia exit và thời gian. use sẽ đưa proxy vào trường proxy trên Single hoặc Browser (Proxy engine sẽ tự tìm), và × sẽ xóa proxy khỏi danh sách.
Giới hạn quốc gia Exit (Chế độ Proxy)
Trường exitCountries trên Proxy chấp nhận danh sách mã quốc gia gồm hai chữ cái, phân tách bằng dấu phẩy (CZ, GB). Các giá trị sẽ được cắt khoảng trắng, chuyển thành chữ hoa và loại bỏ trùng lặp khi gửi. Cơ chế chọn là danh sách cho phép nghiêm ngặt: các proxy có exit không xác định sẽ bị loại trừ và request không bao giờ dự phòng sang quốc gia khác. Nếu pool hiện tại không có proxy phù hợp, response sẽ trả về code: "no_eligible_proxy" cùng phạm vi đã yêu cầu được lặp lại trong details.exitCountries. Hãy giữ nguyên phạm vi này và thử lại sau.
Khi lệnh gọi proxy thành công trong phạm vi giới hạn, thanh response sẽ hiển thị exit <CODE> cạnh proxy ID để bạn xác minh quốc gia được phân phát khớp với yêu cầu.
Đặt lại thanh công cụ
Nút Reset trên thanh công cụ (cạnh History và Saved) sẽ xóa playground về trạng thái ban đầu. Vì đây là thao tác có tính hủy bỏ, nó sẽ mở hộp thoại xác nhận liệt kê chính xác những gì sẽ bị xóa: cả ba biểu mẫu sản phẩm (Single, Proxy, Browser), mọi cookie đã lưu trong jar, mọi proxy đang giữ và response hiện tại. Các preset đã lưu và API key đã chọn vẫn được giữ lại. Nhấp vào Reset everything để xác nhận; thao tác khác sẽ hủy bỏ.
Gửi và hủy
Nhấp vào Send để gửi request. Cột bên phải chuyển sang trạng thái tải với biểu tượng xoay và nút Cancel trong khi lệnh gọi đang xử lý. Nhấp vào Cancel (hoặc nhấn lại nút này trên thiết bị di động) để hủy. Một request bị hủy sẽ khôi phục trình giữ chỗ rảnh rỗi với nội dung "Request canceled." thay vì hiển thị lỗi.
Thẻ response chuyển sang kết quả ngay khi request hoàn tất (hoặc thất bại). Các lần chạy Auto có thể mất nhiều thời gian hơn các engine thủ công vì bậc thang có thể leo qua nhiều nấc trên một mục tiêu chưa có cache.
Đọc response
Cột response phản chiếu bố cục request với các tab riêng:
| Tab | Nội dung hiển thị |
|---|---|
| Body | Body đã phân tích cú pháp. Chuyển đổi giữa các chế độ xem JSON, HTML và Text tùy thuộc vào dữ liệu trả về. |
| Headers | Header của response, mỗi dòng một header. |
| Cookies | Cookie do mục tiêu trả về, ở cả chế độ xem đã phân tích cú pháp (nhóm theo host) và thô (văn bản Set-Cookie). Chế độ xem đã phân tích cú pháp hiển thị huy hiệu HO trên cookie chỉ dành cho host; cookie miền không được đánh dấu. |
| Raw | Toàn bộ envelope JSON do API trả về. |
Thanh công cụ response có Copy và Download cho toàn bộ response, cùng Find in response (Ctrl+K hoặc Cmd+K) để tìm kiếm trong tab đang mở, sử dụng Enter và Shift+Enter để duyệt qua các kết quả khớp. Body, Headers và Cookies cũng có nút Copy và Download riêng cho từng tab đó.
Một dải meta phía trên các tab hiển thị trạng thái HTTP ngược dòng (upstream), tổng thời gian, proxy ID đã xử lý lệnh gọi, và (đối với lệnh gọi Proxy có phạm vi) mã gồm hai chữ cái exit <CODE>. Đối với các lượt chạy Auto, dải này cũng hiển thị bậc thang nào đã phân phối response, có bao nhiêu lần thử phụ đã được thực hiện, và số credit đã sử dụng.
Lệnh Gọi Cần Gì
Một câu bên dưới dải meta sẽ mô tả chi tiết phương thức đã tải trang. Đối với một lượt chạy Auto, câu này nêu tên bậc thang (phiên FourA đã có cho máy chủ lưu trữ, request thông thường, proxy xoay vòng, trình duyệt thực, hoặc trình duyệt trước rồi phát lại với chi phí thấp), liệu thử thách (challenge) có được giải hay không, mất bao nhiêu lần thử, và chi phí bao nhiêu.
Khi một trong các giới hạn gói cước của bạn từ chối lệnh gọi, câu này sẽ thông báo trước: "Bị dừng bởi gói của bạn, không phải bởi trang web", kèm theo giới hạn cụ thể (đã dùng hết request trình duyệt hôm nay, quá nhiều request đang xử lý, đã tiêu hết credit của kỳ này, v.v.) và một liên kết đến Usage & Limits. Dòng này được tạo từ mã X-FourA-Limit mà API trả về, do đó một trang phức tạp bị lỗi sẽ cho bạn biết trang web đã dừng nó hay do gói cước.
Chuyển Giá Trị Giữa Các Lượt Chạy
Sau bất kỳ lượt chạy nào trả về dữ liệu session có thể tái sử dụng, một nút điều khiển Carry nhỏ trên thanh công cụ response sẽ hiển thị những gì khả dụng:
- Các lượt chạy Auto cung cấp bộ ba
sessionđầy đủ (proxy,cookies,userAgent). - Các lượt chạy Browser cung cấp
userAgentcủa response, cộng với proxy ID nếu có sử dụng. - Các lượt chạy Proxy cung cấp proxy ID được trả về, hồ sơ trình duyệt khi tính năng xoay vòng chọn một hồ sơ bạn không yêu cầu, và
exitClassđã phân phối lệnh gọi, để kết quả premium có thể được gửi lại ngay lập tức.
Nhấp vào Carry và chọn nơi áp dụng từng giá trị chỉ bằng một cú nhấp chuột: userAgent trở thành header User-Agent trên Single hoặc Proxy, và proxy ID được điền vào trường proxy trên Single hoặc Browser. Các trường nhận giá trị được chuyển tiếp sẽ hiển thị chấm đỏ "modified" để bạn có thể thấy những gì đã thay đổi.
Một browser profile được chuyển tiếp sẽ điền vào ba trường chọn os, browser và version, đồng thời bật unblocker, tương tự quy tắc áp dụng khi bạn chọn hồ sơ thủ công. Tùy chọn này chỉ xuất hiện sau khi danh mục hồ sơ đã tải xong, vì biểu mẫu gồm ba trường chọn chứ không phải một trường id.
Hồ sơ là giá trị duy nhất cho biết request thành công không phải là request bạn đã nhập: Proxy chỉ báo cáo profile khi nó chuyển sang một dòng trình duyệt mà bạn không yêu cầu. Phát lại mà không có nó đồng nghĩa với việc bạn phát lại phiên bản đã thất bại. Xem Why a Proxy Request Ran Out of Tries.
Mở Rộng Toàn Màn Hình
Biểu tượng mở rộng trên thanh công cụ response sẽ đưa thẻ response ra khỏi bố cục chia đôi và chuyển thành lớp phủ toàn màn hình. Hãy sử dụng tính năng này cho các cây JSON sâu, dữ liệu Set-Cookie dài, hoặc phần thân HTML rộng khi cột nửa chiều rộng trở nên chật chội. Bản thân trang sẽ dừng cuộn khi lớp phủ đang mở. Nhấp lại vào biểu tượng (hoặc nhấn Escape) để thu nhỏ.
Trình Tái Tạo curl
Trên tab Raw của request, phía dưới JSON, một khối curl sẽ hiển thị lệnh command line tương đương chính xác với request bạn đang tạo, cùng với nút Copy curl. Hãy sao chép lệnh này để tái hiện request từ terminal, chia sẻ với đồng nghiệp hoặc dán vào báo cáo lỗi.
Đối với các key có thể hiển thị, nút Reveal key bên cạnh đoạn mã sẽ điền trực tiếp key dạng plain-text vào curl để bạn có thể sao chép và chạy ngay. Nhấp lại để ẩn. Các legacy key (được tạo trước khi tính năng reveal ra mắt) sẽ giữ placeholder PASTE_PLAINTEXT_FOR_<key-name>; hãy tạo lại key từ trang API Keys để có thể hiển thị key.
Thao tác hiển thị key luôn được ghi log kiểm toán trên server mỗi lần thực hiện, và plain key chỉ lưu trong bộ nhớ cho phiên trang hiện tại.
Lưu Preset
Nếu bạn thường xuyên cấu hình lại cùng một target, hãy lưu lại. Nhấp vào Save trên hàng tab của request để lưu cấu hình hiện tại thành một preset có tên.
Mở Saved trên thanh công cụ để xem các preset của bạn. Nhấp vào Load để điền vào form, hoặc Delete để xóa một preset.
Một request được mở từ tab DevTools của tiện ích mở rộng FourA Chrome sẽ tải với key của tiện ích được chọn nếu key đó nằm trong tài khoản của bạn, và trang sẽ thông báo điều này. Nếu không, hệ thống sẽ yêu cầu bạn chọn một key. Một request phát lại không đặt unblocker sẽ chạy với tùy chọn bật, tương tự như API.
| Trường Preset | Dữ liệu lưu trữ |
|---|---|
| Name | Nhãn ngắn (tối đa 100 ký tự) |
| Description | Ghi chú tùy chọn (tối đa 500 ký tự) |
| Endpoint | Engine áp dụng preset (auto / single / proxy / browser) |
| Config | Toàn bộ payload của request, bao gồm các trường UI, header, cookie và body |
Preset được giới hạn theo tài khoản người dùng của bạn và không được chia sẻ với các thành viên trong nhóm.
Phát lại từ History
Mọi request bạn chạy đều được ghi log. Mở History trên thanh công cụ để xem 20 lần chạy gần nhất, được sắp xếp mới nhất trước.
Mỗi hàng hiển thị endpoint, target URL, trạng thái và thời gian. Nhấp vào Replay trên bất kỳ hàng nào để tải lại request đó vào form, sau đó nhấn Send để chạy lại.
History được tự động giới hạn theo tài khoản của bạn: bạn chỉ thấy các lần chạy của chính mình.
Mở từ Activity
Hộp thoại chi tiết Activity Log có nút Open in Playground. Nhấp vào nút này và Playground sẽ tải cả request đã lưu trữ lẫn response đã lưu trữ. Form sẽ tự điền từ payload đã lưu, và thẻ response sẽ hiển thị những gì API đã trả về tại thời điểm đó cùng với huy hiệu "archived" trên thanh thông tin proxy meta ("archived
Từ đó, bạn có thể thay đổi một tham số và nhấn Send để chạy một request mới tới API thực tế, hoặc chỉ kiểm tra payload đã lưu trữ mà không cần chạy lại. Payload được lưu giữ trong 24 giờ, vì vậy các hàng Activity cũ hơn sẽ không có response để tải lại.
Mẹo
- Bắt đầu trong Playground trước khi viết mã cho một mục tiêu mới. Khi bật Auto, bạn sẽ biết chỉ trong vài giây liệu một fetch chi phí thấp đã đủ hay trang web bắt buộc phải render qua browser.
- Đối với các mục tiêu bị khóa theo quốc gia, hãy thực hiện một lệnh gọi Proxy với
exitCountriesđược thiết lập, sau đó chuyển proxy ID trả về vào lệnh gọi Browser để quá trình render JavaScript diễn ra qua cùng một exit node. - Lưu preset cho mỗi mục tiêu bạn scrape thường xuyên. Phát lại preset đã lưu chỉ mất một cú nhấp chuột; việc dựng lại request từ trí nhớ sẽ mất nhiều thời gian hơn.
- Sử dụng tab Cookies để debug scraping dựa trên session. Chế độ xem Set-Cookie thô sẽ hiển thị chính xác những gì mục tiêu đã gửi.
- Khi mục tiêu từ chối bạn, hãy thử một tùy chọn khác trong danh sách Browser profile trước khi chuyển sang engine nặng hơn. Đổi browser được hiển thị là miễn phí; render browser thì không.
- Các request trong Playground được tính phí vào API key bạn chọn. Hãy dùng một key riêng có quota thấp để thử nghiệm thông thường nếu bạn muốn giữ mức sử dụng production không bị ảnh hưởng.
Liên quan
- API Endpoints: Tài liệu tham khảo tham số đầy đủ cho cả bốn engine, bao gồm
exitCountriesvà các trường browser profile - Smart Fetch (Auto): Cơ chế hoạt động ngầm của Auto
- Choosing the Right Endpoint: Khi nào nên chọn Auto, Single, Proxy hoặc Browser
- API Keys: Quản lý các key bạn dùng để xác thực request trong Playground
- Activity Log: Mở trực tiếp request trước đây vào Playground
- Dashboard Overview: Tất cả các mục trong thanh bên