Cách giải quyết thử thách CAPTCHA cho các tác nhân AI: Trích xuất dữ liệu với n8n, CapSolver và OpenClaw

Anh Tuan
Data Science Expert
09-Feb-2026

Cho phép trợ lý AI của bạn kích hoạt trích xuất dữ liệu tự động ở phía máy chủ — không cần chèn trình duyệt, không cần mã.
Thách thức: CAPTCHA cản trở hiệu quả của tác nhân AI của bạn
Khi Tác nhân AI của bạn điều hướng web, CAPTCHA là trở ngại chính. Các trang được bảo vệ chặn tác nhân, biểu mẫu không thể được gửi và các tác vụ bị đình trệ, chờ đợi sự can thiệp của con người. Điều này hạn chế đáng kể hiệu quả và tính tự chủ của các Tác nhân AI trong việc thu thập dữ liệu tự động và xử lý thông tin.
Để giải quyết vấn đề cốt lõi này, chúng tôi cung cấp hai giải pháp mạnh mẽ kết hợp OpenClaw và CapSolver:
Cách tiếp cận 1 — Tích hợp tiện ích mở rộng trình duyệt
Tải tiện ích mở rộng CapSolver Chrome vào môi trường trình duyệt của OpenClaw. Tiện ích mở rộng này phát hiện và giải quyết CAPTCHA một cách vô hình ở phía máy khách, không có sự tham gia của n8n, cho phép Tác nhân AI vượt qua xác minh một cách liền mạch trong khi điều hướng các trang. (Xem hướng dẫn đầy đủ của chúng tôi về cách tiếp cận tiện ích mở rộng)
Cách tiếp cận 2 — Đường ống tự động hóa n8n phía máy chủ (Trọng tâm của Hướng dẫn này)
OpenClaw kích hoạt một yêu cầu webhook duy nhất và n8n sau đó giải quyết CAPTCHA thông qua API CapSolver, gửi biểu mẫu và trả về nội dung trang sạch cho Tác nhân AI của bạn. Trong quá trình này, Tác nhân AI không bao giờ trực tiếp xử lý xác minh CAPTCHA.
Những gì bạn sẽ xây dựng:
Một đường ống tự động hóa CAPTCHA phía máy chủ mà OpenClaw kích hoạt thông qua webhook. n8n sẽ tận dụng CapSolver để giải quyết CAPTCHA, gửi biểu mẫu và trả về nội dung trang đã xử lý cho Tác nhân AI của bạn, đảm bảo thực hiện trơn tru các tác vụ trích xuất dữ liệu.
Điều kiện tiên quyết
Trước khi bắt đầu, hãy đảm bảo bạn có môi trường và các công cụ sau:
- OpenClaw đã được cài đặt và cổng đang chạy (
openclaw gateway start) - n8n đang chạy cục bộ — hướng dẫn cài đặt
- Tài khoản CapSolver có khóa API — đăng ký tại đây
- Nút CapSolver có sẵn trong n8n (tích hợp chính thức — đã được tích hợp sẵn)
Thiết lập CapSolver trong n8n
CapSolver có sẵn dưới dạng tích hợp chính thức trong n8n, không yêu cầu cài đặt thêm nút cộng đồng. Bạn có thể tìm thấy nó trực tiếp trong bảng điều khiển nút khi xây dựng quy trình làm việc của mình. Để cho phép nút CapSolver xác thực với tài khoản của bạn, bạn cần tạo thông tin xác thực trong n8n.
Mở canvas n8n của bạn, nhấp vào + để thêm nút và tìm kiếm CapSolver. Nút này xử lý việc tạo tác vụ, thăm dò ý kiến và truy xuất mã thông báo trong một đơn vị duy nhất.
Các bước để thêm thông tin xác thực của bạn:
- Trong n8n, đi tới Credentials → New Credential
- Tìm kiếm CapSolver
- Dán khóa API của bạn từ bảng điều khiển CapSolver
- Lưu
Quan trọng: Mọi nút CapSolver trong quy trình làm việc của bạn sẽ tham chiếu thông tin xác thực này. Bạn chỉ cần tạo nó một lần — tất cả các quy trình làm việc giải quyết CAPTCHA của bạn sẽ chia sẻ cùng một thông tin xác thực. Hơn nữa, CapSolver chính thức cung cấp một kho lưu trữ Kỹ năng GitHub phong phú, nơi bạn có thể khám phá thêm các tích hợp và trường hợp sử dụng liên quan đến CapSolver, mở rộng hơn nữa khả năng của Tác nhân AI của bạn.
Quy trình làm việc: Đường ống tự động hóa CAPTCHA OpenClaw
Mọi thứ bên dưới đều là ví dụ. Các URL, tên trường, loại CAPTCHA, điều kiện thành công, cấu trúc phản hồi — tất cả đều cụ thể cho trang web demo được sử dụng ở đây. Mục tiêu thực sự của bạn sẽ khác. Hãy coi mỗi cấu hình nút là một điểm khởi đầu, không phải là một thiết lập hoàn chỉnh.
Cách thức hoạt động
- Webhook — Nhận yêu cầu POST từ OpenClaw (hoặc bất kỳ máy khách HTTP nào).
- CapSolver — Giải quyết CAPTCHA bằng cách sử dụng loại tác vụ đã định cấu hình.
- Yêu cầu HTTP — Gửi mã thông báo đã giải quyết đến trang web mục tiêu.
- Nếu — Kiểm tra xem phản hồi cho biết thành công hay thất bại.
- Chỉnh sửa trường — Trích xuất
pageTexttừ phản hồi. - Phản hồi Webhook — Trả về kết quả cho người gọi.
Webhook ──► Giải quyết CAPTCHA ──► Gửi mã thông báo ──► Thành công? ──► Trích xuất kết quả ──► Phản hồi Webhook
└─► Đánh dấu thất bại ────┘
Chi tiết cấu hình nút
Tạo một quy trình làm việc mới có tên “OpenClaw/Capsolver/n8n Scraper” với các nút sau:
1. Nút Webhook
- Loại: Webhook
- Phương thức HTTP: POST
- Đường dẫn:
openclaw/scrape - Phản hồi: Nút phản hồi (làm cho cuộc gọi đồng bộ — người gọi đợi kết quả)
2. Nút CapSolver
- Loại: CapSolver
- Loại tác vụ:
ReCaptchaV2TaskProxyless - URL trang web:
https://example.com/protected-page - Khóa trang web:
YOUR_SITE_KEY(tìm nó trong nguồn trang — tìmdata-sitekey) - Thông tin xác thực: khóa API CapSolver của bạn
Sử dụng reCAPTCHA v3? Chuyển Loại tác vụ thành
ReCaptchaV3TaskProxylessvà thêm trường Hành động trang (ví dụ:login,submit,homepage). Điều này là bắt buộc đối với v3 — đó là tên hành động mà trang web đăng ký với Google. Bạn sẽ tìm thấy nó trong nguồn trang gần lệnh gọigrecaptcha.execute(...).Hãy nhớ rằng mỗi loại CAPTCHA có bộ tham số riêng — một số trường tùy chọn trong v2 trở thành bắt buộc trong v3 và v3 có thể hiển thị các trường hoàn toàn không tồn tại trong v2 (như
minScore). Luôn kiểm tra tài liệu CapSolver để biết các tham số chính xác mà Loại tác vụ của bạn yêu cầu.
Nút này gọi API CapSolver, đợi giải quyết (thường là 5–20 giây) và trả về mã thông báo trong $json.data.solution.gRecaptchaResponse.
3. Nút yêu cầu HTTP
- Phương thức: POST
- URL:
https://example.com/protected-page - Nội dung: form-urlencoded
g-recaptcha-response=={{ $json.data.solution.gRecaptchaResponse }}
- Tiêu đề: tiêu đề trình duyệt tiêu chuẩn (User-Agent, Accept, Referer, Origin, v.v.)
Điều này gửi biểu mẫu với mã thông báo đã giải quyết, chính xác như một trình duyệt sẽ làm.
Chú ý: Cách mã thông báo được gửi khác nhau tùy theo trang web. Hầu hết các biểu mẫu đều mong đợi nó trong phần thân yêu cầu dưới dạng
g-recaptcha-response, nhưng một số trang web gửi nó dưới dạng trường JSON, tiêu đề tùy chỉnh hoặc thậm chí là cookie hoặc tên khác. Sử dụng DevTools của trình duyệt của bạn (tab Mạng) để kiểm tra xem một lần gửi thực sự trông như thế nào và phản chiếu điều đó trong nút Yêu cầu HTTP của bạn.
4. Nút Nếu (Kiểm tra thành công)
- Điều kiện:
$json.datachứa"recaptcha-success" - Nhánh đúng → Chỉnh sửa trường (thành công)
- Nhánh sai → Chỉnh sửa trường1 (thất bại)
5. Các nút Chỉnh sửa trường / Chỉnh sửa trường1
Cả hai nhánh đều đặt một trường duy nhất:
pageText={{ $json.data }}
Nhánh thành công và thất bại đều vượt qua pageText — người gọi có thể kiểm tra HTML để xác định kết quả.
Điều chỉnh điều này cho trang của bạn: Cách bạn phân tích cú pháp và sử dụng dữ liệu phản hồi hoàn toàn phụ thuộc vào những gì bạn muốn và những gì trang web mục tiêu trả về. Một số trang trả về JSON, những trang khác trả về HTML, một số chuyển hướng khi thành công. Bạn có thể muốn trích xuất một trường cụ thể, phân tích cú pháp bảng, kiểm tra cookie phiên hoặc loại bỏ hoàn toàn HTML. Điều kiện thành công (
"recaptcha-success") cũng chỉ là một ví dụ — trang web của bạn sẽ có chỉ báo riêng. Các nút này là điểm khởi đầu; mong đợi sẽ tùy chỉnh chúng cho trường hợp sử dụng của bạn.
6. Nút Lưu kết quả
Nút này chuyển { pageText, savedAt } tới phản hồi webhook và tùy chọn duy trì kết quả vào bộ nhớ.
Lưu ý: Nút Mã của n8n chạy trong một máy ảo hộp cát chặn các phần tích hợp sẵn của Node.js như
require('fs'). Sử dụng nút Thực thi lệnh để ghi vào đĩa hoặc thay thế hoàn toàn nút này bằng bất kỳ tích hợp n8n nào phù hợp với ngăn xếp của bạn.
Tùy chọn A — Tệp JSON cục bộ (Nút Thực thi lệnh):
Sử dụng hai nút được xâu chuỗi với nhau:
Nút 7a — Chuẩn bị dữ liệu (Nút mã):
javascript
const item = $input.first().json;
const now = new Date();
const savedAt = now.toISOString();
const data = { pageText: item.pageText || '', savedAt };
const encoded = Buffer.from(JSON.stringify(data)).toString('base64');
const cmd = 'python3 /path/to/save-result.py ' + encoded;
return [{ json: { cmd, pageText: data.pageText, savedAt } }];
Nút 7b — Lưu kết quả (Nút Thực thi lệnh):
- Lệnh:
={{ $json.cmd }}
Trong đó save-result.py đọc đối số base64 và nối vào tệp JSON cục bộ.
Tùy chọn B — Bất kỳ bộ nhớ nào được n8n hỗ trợ:
n8n có các nút gốc cho hầu hết mọi hệ thống lưu trữ. Thay thế Nút 7 bằng bất kỳ nút nào sau đây:
| Bộ nhớ | Nút n8n |
|---|---|
| Google Sheets | Nối một hàng với pageText + dấu thời gian |
| Airtable | Tạo một bản ghi |
| Notion | Tạo một mục cơ sở dữ liệu |
| PostgreSQL / MySQL | CHÈN vào một bảng |
| AWS S3 / Cloudflare R2 | Tải lên tệp JSON |
| Slack / Telegram | Đăng kết quả lên một kênh |
Chỉ cần kết nối nút giữa Chỉnh sửa trường và Phản hồi Webhook, đồng thời định cấu hình nút để lưu trữ $json.pageText và dấu thời gian.
7. Nút Phản hồi Webhook
- Phản hồi bằng: JSON
- Nội dung phản hồi:
={{ JSON.stringify($json) }} - Tiếp tục khi thất bại: đã bật
Kích hoạt quy trình làm việc sau khi nó được xây dựng. Đường dẫn webhook sẽ hoạt động tại:
POST http://127.0.0.1:3005/webhook/openclaw/scrape
Nhập quy trình làm việc này
Sao chép JSON bên dưới và nhập nó vào n8n qua Menu → Import from JSON. Sau khi nhập, hãy chọn thông tin xác thực CapSolver của bạn trong nút Giải quyết CAPTCHA.
Nhấp để mở rộng JSON quy trình làm việc
json
{
"nodes": [
{
"parameters": {
"content": "## OpenClaw CAPTCHA Automation Pipeline\n\n### How it works\n\n1. Initiates the process with a webhook trigger.\n2. Attempts to solve CAPTCHA using a specialized service.\n3. Submits the CAPTCHA token for validation.\n4. Evaluates whether the token submission was successful.\n5. Sets the result and responds back via the webhook.\n\n### Setup steps\n\n- [ ] Configure the webhook trigger with the desired endpoint URL.\n- [ ] Set up CAPTCHA solving service credentials.\n- [ ] Ensure HTTP request configurations are valid for token submission.\n- [ ] Customize the success and failure response messages.\n\n### Customization\n\nYou can customize the success and failure conditions and responses in the 'Success?' node.",
"width": 480,
"height": 656
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-1312,
-352
],
"id": "de683912-ba9c-4879-9a8e-38190c4b236c",
"name": "Sticky Note"
},
{
"parameters": {
"content": "## Initialization and CAPTCHA solving\n\nStarts with a webhook trigger and solves the CAPTCHA using an external service.",
"width": 800,
"height": 272,
"color": 7
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-768,
-352
],
"id": "a1b2c3d4-e5f6-7890-1234-56789abcdef0",
"name": "Sticky Note"
},
{
"parameters": {
"httpMethod": "POST",
"path": "openclaw/scrape",
"responseMode": "responseNode",
"options": {}
},
"type": "n8n-nodes-base.webhook",
"typeVersion": 1,
"position": [
-704,
-256
],
"id": "b2c3d4e5-f6a7-8901-2345-6789abcdef01",
"name": "Webhook",
"webhookId": "c3d4e5f6-a7b8-9012-3456-789abcdef012"
},
{
"parameters": {
"taskType": "ReCaptchaV2TaskProxyless",
"websiteUrl": "https://example.com/protected-page",
"websiteKey": "YOUR_SITE_KEY"
},
"type": "n8n-nodes-capsolver.capSolver",
"typeVersion": 1,
"position": [
-480,
-256
],
"id": "d4e5f6a7-b8c9-0123-4567-89abcdef0123",
"name": "Solve CAPTCHA",
"credentials": {
"capSolverApi": {
"id": "e5f6a7b8-c9d0-1234-5678-9abcdef01234",
"name": "CapSolver account"
}
}
},
{
"parameters": {
"method": "POST",
"url": "https://example.com/protected-page",
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "g-recaptcha-response",
"value": "={{ $json.data.solution.gRecaptchaResponse }}"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.1,
"position": [
-256,
-256
],
"id": "f6a7b8c9-d0e1-2345-6789-abcdef012345",
"name": "Submit Token"
},
{
"parameters": {
"conditions": {
"string": [
{
"value1": "={{ $json.data }}",
"operation": "contains",
"value2": "recaptcha-success"
}
]
}
},
"type": "n8n-nodes-base.if",
"typeVersion": 1,
"position": [
-32,
-256
],
"id": "a7b8c9d0-e1f2-3456-789a-bcdef0123456",
"name": "Success?"
},
{
"parameters": {
"values": {
"string": [
{
"name": "pageText",
"value": "={{ $json.data }}"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 2,
"position": [
192,
-352
],
"id": "b8c9d0e1-f2a3-4567-89ab-cdef01234567",
"name": "Extract Result"
},
{
"parameters": {
"values": {
"string": [
{
"name": "pageText",
"value": "={{ $json.data }}"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 2,
"position": [
192,
-160
],
"id": "c9d0e1f2-a3b4-5678-9abc-def012345678",
"name": "Mark Failed"
},
{
"parameters": {
"respondWith": "json",
"responseBody": "={{ JSON.stringify($json) }}",
"options": {}
},
"type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1,
"position": [
416,
-352
],
"id": "d0e1f2a3-b4c5-6789-abcd-ef0123456789",
"name": "Respond to Webhook"
},
{
"parameters": {
"respondWith": "json",
"responseBody": "={{ JSON.stringify($json) }}",
"options": {}
},
"type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1,
"position": [
416,
-160
],
"id": "e1f2a3b4-c5d6-789a-bcde-f0123456789a",
"name": "Respond to Webhook"
}
],
"connections": {
"Webhook": {
"main": [
[
{
"node": "Solve CAPTCHA",
"type": "main",
"index": 0
}
]
]
},
"Solve CAPTCHA": {
"main": [
[
{
"node": "Submit Token",
"type": "main",
"index": 0
}
]
]
},
"Submit Token": {
"main": [
[
{
"node": "Success?",
"type": "main",
"index": 0
}
]
]
},
"Success?": {
"main": [
[
{
"node": "Extract Result",
"type": "main",
"index": 0
}
],
[
{
"node": "Mark Failed",
"type": "main",
"index": 0
}
]
]
},
"Extract Result": {
"main": [
[
{
"node": "Respond to Webhook",
"type": "main",
"index": 0
}
]
]
},
"Mark Failed": {
"main": [
[
{
"node": "Respond to Webhook",
"type": "main",
"index": 0
}
]
]
}
},
"pinData": {},
"meta": {
"instanceId": "962ff0267b713be0344b866fa54daae28de8ed2144e2e6867da355dae193ea1f"
}
}
Tích hợp OpenClaw
Để kết nối OpenClaw với quy trình làm việc này, hãy tạo một tập lệnh kích hoạt và đăng ký nó.
Tạo tập lệnh kích hoạt:
bash
cat > ~/.openclaw/scripts/extract-data << 'EOF'
#!/usr/bin/env bash
curl -s -X POST http://127.0.0.1:3005/webhook/openclaw/scrape
EOF
chmod +x ~/.openclaw/scripts/extract-data
Đây là điều duy nhất OpenClaw chạy. Không có đối số, không có khóa trang web, không có URL — quy trình làm việc biết những gì cần thu thập.
Cách OpenClaw lấy dữ liệu: Tập lệnh đợi n8n kết thúc (CapSolver giải quyết + gửi biểu mẫu), sau đó nhận trực tiếp
{ pageText, savedAt }trong phản hồi Webhook. Không liên quan đến việc đọc tệp — dữ liệu quay trở lại đồng bộ qua HTTP. Hình dạng phản hồi chỉ là những gì quy trình làm việc này trả về — nếu bạn cần các trường khác nhau (ví dụ: giá đã phân tích cú pháp, trạng thái đăng nhập, đối tượng JSON có cấu trúc), hãy sửa đổi các nút Chỉnh sửa trường và Lưu kết quả để trả về bất kỳ thứ gì trường hợp sử dụng của bạn yêu cầu.
Đăng ký lệnh trong TOOLS.md:
Mở ~/.openclaw/workspace/TOOLS.md và thêm mục nhập sau để OpenClaw biết về lệnh:
markdown
### extract-data
Chạy: `/root/.openclaw/scripts/extract-data`
Trả về `{ pageText, savedAt }` mới từ đường ống trực tiếp. Trả về trường `pageText` từ phản hồi JSON.
Kiểm tra luồng tự động hóa tác nhân AI của bạn
Kích hoạt từ OpenClaw — gửi lệnh này tới Tác nhân AI của bạn (qua Discord, Telegram, WhatsApp hoặc bất kỳ kênh nào):
extract data
OpenClaw chạy tập lệnh extract-data, kích hoạt webhook và chờ đợi. n8n giải quyết CAPTCHA, gửi biểu mẫu và trả về { pageText, savedAt } trực tiếp trong phản hồi HTTP. OpenClaw nhận và tóm tắt kết quả — thường trong vòng 10–40 giây.
Kiểm tra từ thiết bị đầu cuối:
bash
curl -s -X POST http://127.0.0.1:3005/webhook/openclaw/scrape
Điều chỉnh quy trình làm việc cho trang web mục tiêu của bạn
Quy trình làm việc của hướng dẫn này được xây dựng cho một trang web demo cụ thể. Đối với mục tiêu thực tế của bạn, mọi phần của đường ống có thể yêu cầu điều chỉnh. Đây là những gì cần xem xét:
1. Loại CAPTCHA
Không phải tất cả các trang web đều sử dụng reCAPTCHA v2. Thay đổi Loại tác vụ của nút CapSolver để khớp với những gì mục tiêu sử dụng:
| Những gì bạn thấy trên trang web | Hoạt động của nút n8n |
|---|---|
| Hộp kiểm "Tôi không phải là người máy" | reCAPTCHA v2 |
| reCAPTCHA vô hình (tự động kích hoạt) | reCAPTCHA v2 |
| Điểm reCAPTCHA v3 | reCAPTCHA v3 |
| Tiện ích Cloudflare Turnstile | Cloudflare Turnstile |
| Thử thách Cloudflare (trang 5s) | Cloudflare Challenge |
| Câu đố GeeTest (v3) | GeeTest V3 |
| Câu đố GeeTest (v4) | GeeTest V4 |
| Bảo vệ bot DataDome | DataDome |
| AWS WAF CAPTCHA | AWS WAF |
| MTCaptcha | MTCaptcha |
Đồng thời cập nhật URL trang web và Khóa trang web để khớp với mục tiêu của bạn. Bạn có thể tìm thấy khóa trang web trong nguồn trang (tìm thuộc tính data-sitekey hoặc tiện ích mở rộng trình duyệt CapSolver tự động phát hiện nó).
2. Cách mã thông báo được gửi
Đây là phần thay đổi nhiều nhất giữa các trang web. Trang web demo sử dụng một POST biểu mẫu đơn giản với mã thông báo trong trường nội dung. Mục tiêu của bạn có thể khác:
Dưới dạng trường biểu mẫu (phổ biến nhất)
POST /submit
Content-Type: application/x-www-form-urlencoded
g-recaptcha-response=TOKEN&other_field=value
Trong nội dung JSON
POST /api/login
Content-Type: application/json
{ "username": "...", "password": "...", "captchaToken": "TOKEN" }
Trong một tiêu đề
POST /api/action
X-Captcha-Token: TOKEN
Dưới dạng cookie
POST /submit
Cookie: cf_clearance=TOKEN
Trong URL dưới dạng tham số truy vấn
GET /search?q=query&token=TOKEN
Kiểm tra tab mạng trong công cụ dành cho nhà phát triển của trình duyệt khi bạn giải quyết CAPTCHA theo cách thủ công trên trang web mục tiêu của mình. Tìm kiếm yêu cầu kích hoạt ngay sau khi giải quyết — điều đó cho bạn thấy chính xác mã thông báo đi đến đâu.
3. Nút yêu cầu HTTP
Khi bạn biết cách mã thông báo được gửi, hãy định cấu hình nút Yêu cầu HTTP cho phù hợp:
- Phương thức: khớp với trang web (POST, GET, PUT)
- URL: điểm cuối chính xác nhận biểu mẫu hoặc lệnh gọi API
- Tiêu đề: sao chép tiêu đề trình duyệt từ tab mạng của bạn — User-Agent, Referer, Origin, Accept, Content-Type thường được yêu cầu
- Nội dung: sử dụng form-urlencoded, JSON hoặc nhiều phần tùy thuộc vào điểm cuối
- Cookie: nếu trang web sử dụng cookie phiên, hãy chuyển chúng dưới dạng tiêu đề hoặc sử dụng nút Yêu cầu HTTP trước đó để lấy chúng thông qua bước đăng nhập
4. Trích xuất dữ liệu bạn cần
Quy trình làm việc hiện chuyển toàn bộ HTML của phản hồi dưới dạng pageText. Tùy thuộc vào trường hợp sử dụng của bạn, bạn có thể muốn xử lý hậu kỳ nó:
- Thêm nút Mã sau Yêu cầu HTTP để phân tích cú pháp HTML và trích xuất các trường cụ thể (tên sản phẩm, giá cả, trạng thái)
- Sử dụng nút Trích xuất HTML của n8n để lấy dữ liệu từ các bộ chọn CSS cụ thể mà không cần viết mã
- Lưu trữ các trường có cấu trúc thay vì HTML thô — dễ truy vấn và so sánh hơn giữa các lần chạy
5. Luồng nhiều bước
Một số mục tiêu yêu cầu nhiều hơn một yêu cầu:
- GET trang để lấy mã thông báo CSRF hoặc cookie phiên
- Giải quyết CAPTCHA
- POST biểu mẫu với mã thông báo CSRF + mã thông báo captcha + thông tin xác thực
Chuỗi nhiều nút Yêu cầu HTTP trong n8n để xử lý việc này. Truyền các giá trị giữa các nút bằng biểu thức $json.
Khắc phục sự cố
"Không thể tiếp cận trình thu thập dữ liệu n8n"
json
{"success": false, "error": "Failed to reach n8n scraper. Is the OpenClaw CAPTCHA Scraper workflow active?"}
Kiểm tra: n8n có đang chạy không? Quy trình làm việc có được kích hoạt không? Mở n8n và xác minh quy trình làm việc đang Hoạt động (chuyển đổi màu xanh lá cây).
Hết thời gian CapSolver / Không có mã thông báo
Nguyên nhân có thể:
- Khóa API không hợp lệ — kiểm tra
~/.n8n/credentials - Số dư không đủ — nạp tiền tại capsolver.com/dashboard
- Sự cố mạng giữa máy chủ n8n và API CapSolver
pageText trống hoặc chứa trang lỗi
- URL yêu cầu HTTP hoặc tên trường biểu mẫu có thể sai đối với mục tiêu của bạn
- Kiểm tra tên trường
g-recaptcha-response— một số trang web sử dụng tên trường khác - Bật
fullResponse: truetrong nút Yêu cầu HTTP để xem mã trạng thái
Tham chiếu cấu hình hoàn chỉnh
Tóm tắt các nút quy trình làm việc n8n
| Nút | Loại | Cấu hình chính |
|---|---|---|
| Webhook | n8n-nodes-base.webhook |
POST, đường dẫn: openclaw/scrape, responseMode: responseNode |
| Thu thập trang web | n8n-nodes-capsolver.capSolver |
Tác vụ: ReCaptchaV2TaskProxyless |
| Yêu cầu HTTP | n8n-nodes-base.httpRequest |
POST tới URL mục tiêu với mã thông báo trong nội dung |
| Nếu | n8n-nodes-base.if |
Kiểm tra $json.data chứa "recaptcha-success" |
| Chỉnh sửa trường | n8n-nodes-base.set |
pageText = $json.data |
| Lưu kết quả | n8n-nodes-base.executeCommand hoặc bất kỳ nút lưu trữ nào |
Duy trì kết quả (tệp, DB, Trang tính, v.v.) |
| Phản hồi Webhook | n8n-nodes-base.respondToWebhook |
JSON, continueOnFail: true |
Các loại tác vụ CAPTCHA
| CAPTCHA | Hoạt động của nút n8n |
|---|---|
| reCAPTCHA v2 (hộp kiểm) | reCAPTCHA v2 |
| reCAPTCHA v2 (vô hình) | reCAPTCHA v2 |
| reCAPTCHA v3 | reCAPTCHA v3 |
| Cloudflare Turnstile | Cloudflare Turnstile |
| Thử thách Cloudflare | Cloudflare Challenge |
| GeeTest V3 | GeeTest V3 |
| GeeTest V4 | GeeTest V4 |
| DataDome | DataDome |
| AWS WAF | AWS WAF |
| MTCaptcha | MTCaptcha |
Phần kết luận
Đường ống OpenClaw + n8n + CapSolver cung cấp thiết lập trích xuất dữ liệu cấp sản xuất:
- Chạy theo yêu cầu khi Tác nhân AI của bạn yêu cầu qua webhook.
- Không bao giờ yêu cầu trình duyệt hoặc màn hình.
- Giữ cho việc xử lý CAPTCHA hoàn toàn vô hình — đối với bạn và đối với Tác nhân AI.
Tác nhân AI chỉ cần đưa ra lệnh "extract data" và nhận nội dung trang sạch. CapSolver xử lý phần khó khăn, n8n điều phối luồng và OpenClaw đóng vai trò là giao diện.
Sẵn sàng để bắt đầu? Đăng ký CapSolver và sử dụng mã thưởng OPENCLAW để nhận thêm 6% tiền thưởng cho lần nạp tiền đầu tiên của bạn!
Các câu hỏi thường gặp
Tôi có cần nói với OpenClaw về CapSolver hoặc CAPTCHA không?
Không. OpenClaw chỉ cần chạy một tập lệnh kích hoạt yêu cầu HTTP. n8n xử lý mọi thứ khác. Tác nhân AI của bạn không có kiến thức về CAPTCHA — nó chỉ kích hoạt một công việc và đọc kết quả.
Tôi có thể trỏ cái này vào một trang web khác không?
Có, nhưng bạn có thể sẽ cần điều chỉnh nhiều thứ hơn là chỉ URL. Mỗi trang web gửi mã thông báo CAPTCHA theo cách khác nhau — một số sử dụng các trường biểu mẫu, một số nội dung JSON, một số tiêu đề hoặc cookie. Xem phần "Điều chỉnh quy trình làm việc cho trang web mục tiêu của bạn" ở trên để biết bảng phân tích đầy đủ về những gì cần kiểm tra và thay đổi.
Điều gì xảy ra nếu mục tiêu của tôi sử dụng Turnstile thay vì reCAPTCHA?
Thay đổi Loại tác vụ của nút CapSolver thành AntiTurnstileTaskProxyless. Sau đó, kiểm tra các yêu cầu mạng của mục tiêu của bạn để tìm nơi mã thông báo Turnstile được gửi — nó thường nằm trong một trường biểu mẫu ẩn có tên cf-turnstile-response, nhưng một số triển khai chuyển nó trong nội dung JSON, tiêu đề hoặc cookie thay thế.
Có bao nhiêu kết quả được lưu trữ?
Điều đó phụ thuộc vào lựa chọn lưu trữ của bạn. Với tệp JSON cục bộ, bạn có thể giữ bao nhiêu tùy thích. Với Google Sheets hoặc cơ sở dữ liệu, mỗi lần chạy sẽ nối thêm một hàng vô thời hạn. Định cấu hình nút Lưu kết quả để phù hợp với nhu cầu lưu giữ của bạn.
Tôi có thể kích hoạt điều này từ một công việc cron thay vì OpenClaw không?
Có — điểm cuối webhook chỉ là một HTTP POST. Bất cứ thứ gì có thể thực hiện yêu cầu HTTP đều có thể kích hoạt nó:
bash
curl -s -X POST http://127.0.0.1:3005/webhook/openclaw/scrape
Mỗi lần trích xuất có giá bao nhiêu?
Mỗi lần chạy tốn một tín dụng CapSolver cho việc giải quyết CAPTCHA. reCAPTCHA v2 là một trong những loại rẻ nhất. Kiểm tra giá hiện tại tại capsolver.com.
OpenClaw có miễn phí không?
OpenClaw là mã nguồn mở và miễn phí để tự lưu trữ. Bạn sẽ cần tín dụng API cho nhà cung cấp mô hình AI của mình và CapSolver để giải quyết CAPTCHA.
Tuyên bố Tuân thủ: Thông tin được cung cấp trên blog này chỉ mang tính chất tham khảo. CapSolver cam kết tuân thủ tất cả các luật và quy định hiện hành. Việc sử dụng mạng lưới CapSolver cho các hoạt động bất hợp pháp, gian lận hoặc lạm dụng là hoàn toàn bị cấm và sẽ bị điều tra. Các giải pháp giải captcha của chúng tôi nâng cao trải nghiệm người dùng trong khi đảm bảo tuân thủ 100% trong việc giúp giải quyết các khó khăn về captcha trong quá trình thu thập dữ liệu công khai. Chúng tôi khuyến khích việc sử dụng dịch vụ của chúng tôi một cách có trách nhiệm. Để biết thêm thông tin, vui lòng truy cập Điều khoản Dịch vụ và Chính sách Quyền riêng tư.
Thêm

Cách Giải reCAPTCHA v2/v3 Sử Dụng CapSolver và n8n
Xây dựng API giải eCAPTCHA v2/v3 bằng CapSolver và n8n. Tìm hiểu cách tự động hóa việc giải token, gửi token đến website và trích xuất dữ liệu được bảo vệ mà không cần lập trình.

Anh Tuan
22-Apr-2026

Cách giải quyết GeeTest V3 trong n8n với CapSolver: Hướng dẫn tích hợp đầy đủ
Hãy tìm hiểu cách tích hợp CapSolver với n8n để giải quyết bài toán GeeTest V3 và xây dựng các quy trình tự động hóa đáng tin cậy.

Emma Foster
18-Mar-2026

Cách giải bài toán ImageToText bằng CapSolver và n8n
Chuyển đổi ảnh thành văn bản, giải mã captcha, captcha OCR, capsolver, n8n, quy trình làm việc n8n, tự động hóa, API OCR, tự động hóa captcha, ảnh base64, nhận dạng hình ảnh, OCR AI, webhook, quy trình làm việc theo lịch trình, tự động hóa biểu mẫu, bỏ qua captcha, xử lý phiên, captcha không cần proxy, OCR tức thời, nhận dạng văn bản

Sora Fujimoto
18-Mar-2026

Cách giải GeeTest V4 trong n8n với CapSolver: Hướng dẫn tích hợp hoàn chỉnh
Tìm hiểu cách tích hợp CapSolver với n8n để giải GeeTest V4 và xây dựng quy trình tự động hóa đáng tin cậy.

Sora Fujimoto
18-Mar-2026

Cách sử dụng CapSolver trong n8n: Hướng dẫn toàn diện để giải CAPTCHA trong các quy trình làm việc của bạn
Học cách tích hợp CapSolver với n8n để giải CAPTCHAs và xây dựng các quy trình tự động đáng tin cậy một cách dễ dàng.

Anh Tuan
18-Mar-2026

Làm thế nào để giải các câu đố thị giác trong n8n với CapSolver
Giải các CAPTCHA trực quan bằng Công cụ Vision Engine của CapSolver trong n8n. Xử lý các thanh trượt, xoay, lựa chọn đối tượng và OCR GIF ngay lập tức.

Anh Tuan
18-Mar-2026


