🎯 Trình duyệt đám mây tùy chỉnh, chống phát hiện được hỗ trợ bởi Chromium tự phát triển, thiết kế dành cho trình thu thập dữ liệu webtác nhân AI. 👉Dùng thử ngay
Quay lại blog

Hướng Dẫn Toàn Diện Về Web Scraping Trong Zencoder Với Máy Chủ Scrapeless MCP

Michael Lee
Michael Lee

Expert Network Defense Engineer

19-May-2026

Những điểm chính:

  • Một máy chủ MCP, mọi tác nhân Zencoder. Zencoder chạy các tác nhân Coding Agent, Unit Testing Agent, Ask Agent, E2E Testing Agent, Repo Info Agent và Web Dev Agent bên trong cả tiện ích mở rộng VS Code và plugin JetBrains. Việc thêm Máy chủ MCP không rác vào bất kỳ client nào cung cấp cho từng tác nhân đó một trình duyệt đám mây đã được củng cố, proxy dân cư tại hơn 195 quốc gia, một scraper SERP, và các trợ lý Markdown/Chụp màn hình một lần — thông qua một khối cấu hình duy nhất.
  • Tác nhân không bị chặn. Zencoder cung cấp Repo Grokking và codegen mạnh mẽ, nhưng phương thức lấy web mặc định của nó bị ngăn chặn bởi cùng một shell JavaScript và cổng chống bot mà bất kỳ yêu cầu HTTP ẩn danh nào cũng có thể gặp phải. Điều hướng qua Trình duyệt Ch scraping Không rác thay thế việc kết xuất JavaScript ở phía đám mây, egress proxy dân cư, và các dấu vân tay chống phát hiện trong mỗi phiên.
  • 20 công cụ MCP, một không gian tên. Các primitives trình duyệt (browser_create, browser_goto, browser_get_html, browser_get_text, browser_snapshot, browser_click, browser_type, browser_press_key, browser_scroll, browser_screenshot, browser_close), các trợ lý trang một lần (scrape_html, scrape_markdown, scrape_screenshot), và các công cụ dữ liệu Google (google_search, google_trends). Kế hoạch của tác nhân kết hợp chúng theo lượt.
  • Hai lược đồ cấu hình, một máy chủ. VS Code đọc "zencoder.mcpServers" từ settings.json và hiện tại chỉ hỗ trợ stdio. JetBrains 2.13+ sử dụng một lược đồ đối tượng trần và hỗ trợ stdio, HTTP có thể stream và truyền tải OAuth2. Mục nhập máy chủ scrapeless giống nhau có thể được sử dụng cho cả hai — chỉ thay đổi khóa wrapper.
  • Kỹ năng và MCP kết hợp. Hệ thống Kỹ năng của Zencoder (~/.zencoder/skills/<name>/SKILL.md, YAML front matter + markdown) dạy cho một tác nhân cách sử dụng một công cụ; MCP xác định những công cụ nào tồn tại. Chúng là bổ sung cho nhau — cài đặt cả hai và tác nhân nhận được giao diện công cụ cộng với sách hướng dẫn sử dụng nó.
  • Không lệ thuộc vào mô hình theo thiết kế. Zencoder chuyển hướng giữa Haiku 4.5, Sonnet 4.6, Opus 4.6, Opus 4.7, Gemini 3 Pro, Gemini 3 Flash, GPT-5.4, và GPT-5.2 thông qua cùng một vòng lặp tác nhân. Tích hợp Scrapeless MCP hoạt động như nhau trên tất cả chúng — giao thức là hợp đồng.
  • Miễn phí để bắt đầu. Các tài khoản Scrapeless mới bao gồm thời gian chạy Scraping Browser miễn phí — đăng ký tại app.scrapeless.com. Giá đầy đủ có tại scrapeless.com/en/pricing.

Giới thiệu: tác nhân chỉ hữu ích như khả năng truy cập vào web trực tiếp

Zencoder là một nền tảng điều phối lập trình AI được xây dựng quanh một quy trình đa tác nhân — Coding Agent để thực hiện, Repo Info Agent để cung cấp ngữ cảnh mã nguồn, Unit Testing Agent để kiểm tra độ phủ, E2E Testing Agent để thực hiện các bài kiểm tra trên trình duyệt, Ask Agent để giải thích, và Web Dev Agent để làm việc với giao diện người dùng. Nó được phát hành dưới hai bề mặt: một tiện ích mở rộng Visual Studio Code và một plugin JetBrains. Đối với mã cục bộ, bức tranh là hoàn chỉnh — Zencoder đọc repo, lập kế hoạch thay đổi, và viết ra sự khác biệt.

Ngay khi một nhiệm vụ cần dữ liệu web công khai hiện tại, bức tranh trở nên mỏng hơn. Phương thức lấy web mặc định của Zencoder trả về cùng một shell JavaScript mà bất kỳ yêu cầu HTTP ẩn danh nào cũng sẽ, và trên các trang web thương mại, DOM đã render sống sau các thách thức chống bot, SERP được bảo vệ bằng proxy dân cư, và các ứng dụng một trang chỉ JavaScript mà không có phương thức lấy không đầu nào có thể tiếp cận nếu không có hỗ trợ. Một lời nhắc như "mở trang định giá của đối thủ này và lấy lưới kế hoạch" ngừng là xác định một khi trang mục tiêu ngồi sau Cloudflare Turnstile.

Bài viết này kết nối Máy chủ MCP Không rác vào Zencoder thông qua một khối cấu hình duy nhất. Sau khi kết nối, từng tác nhân Zencoder có 20 công cụ MCP được ánh xạ tới một trình duyệt đám mây đã được củng cố, một scraper Google Search, một scraper Google Trends, và các trợ lý HTML/Markdown/Chụp màn hình một lần. Tác nhân chọn công cụ nào để gọi theo lượt; trình duyệt đám mây xử lý việc kết xuất JavaScript, egress proxy dân cư, và dấu vân tay chống phát hiện; IDE giữ vai trò chủ công trong việc tạo mã, cây tệp, và terminal. Để thấy bề mặt Scrapeless tương tự trên Google Antigravity, xem hướng dẫn tích hợp Antigravity; để xem tài liệu tham khảo máy chủ MCP tiêu chuẩn, xem hướng dẫn máy chủ MCP cho Google Maps.


Bạn có thể làm gì với nó

  • Nghiên cứu API và thư viện trực tiếp trong IDE. Hãy hỏi Tác nhân Coding để lấy trang tài liệu hiện tại cho một thư viện thông qua scrape_markdown và lý luận dựa trên văn bản đã render thay vì dựa trên trí nhớ cắt của API.
  • Ảnh chụp định giá của đối thủ trong không gian làm việc. Đưa URL đối thủ vào trò chuyện với tác nhân; nhận lại các hàng định giá có cấu trúc mà tác nhân có thể dán vào một tệp so sánh bên cạnh mã tiêu thụ chúng.
  • Tiếp nhận bộ dữ liệu công khai vào dự án đang xây dựng. Để cho tác nhân đi qua danh sách thư mục, trích xuất các bản ghi có kiểu, và ghi chúng vào một tập tin JSON, một hạt giống SQL hoặc một kiểu TypeScript bên cạnh lớp mô hình.
  • SERP và tín hiệu xu hướng dựa trên khu vực. Sử dụng google_searchgoogle_trends từ bên trong vòng lặp tác nhân để hạt giống các cờ tính năng, bản sao A/B hoặc mẫu nội dung với chứng cứ cụ thể cho địa phương.
  • Tài liệu Markdown cho RAG và tài liệu dự án. scrape_markdown trả về các trang của nhà xuất bản dưới dạng markdown sạch mà tác nhân có thể chia nhỏ, nhúng hoặc lưu trữ như ngữ cảnh nội bộ của dự án.
  • Tài liệu tham khảo hình ảnh cho công việc thiết kế và UX. scrape_screenshotbrowser_screenshot chụp các trang được render cho sự khác biệt hình ảnh, tham khảo bố cục, hoặc đầu vào thiết kế mà Web Dev Agent có thể gắn vào cuộc trò chuyện.
  • Chạy đa tác nhân từ một prompt. Repo Info Agent thu thập ngữ cảnh mã nguồn, Coding Agent thực thi chuỗi browser_*, Unit Testing Agent xác minh hình dạng của tập tin kết quả - tất cả bên trong một lượt Zencoder.

Tại Scrapeless, chúng tôi chỉ truy cập dữ liệu công khai có sẵn trong khi tuân thủ nghiêm ngặt các luật, quy định và chính sách quyền riêng tư của trang web. Nội dung trong bài viết này chỉ nhằm mục đích biểu diễn.


Tại sao là Scrapeless MCP Server

Scrapeless MCP Server là bề mặt cấp giao thức phía trước Scrapeless Scraping Browser - một trình duyệt đám mây tùy chỉnh, chống phát hiện thiết kế cho các tác nhân AI - cộng với các công cụ dữ liệu Scrapeless (Google Search, Google Trends, các công cụ trợ giúp scrape cấp trang). Đặc biệt là đối với Zencoder, nó mang lại:

  • Kết xuất JavaScript phía đám mây. Trình duyệt đám mây là Chromium đầy đủ với trang đã được khôi phục trước khi trích xuất, vì vậy các SPAs, các nguồn cấp dữ liệu cuộn vô hạn và các bảng điều khiển tải lười là các mục tiêu hàng đầu cho browser_goto + browser_get_html.
  • Proxy dân cư tại hơn 195 quốc gia. Các truy vấn liên kết với địa lý trả về các danh sách mà một người dùng địa phương sẽ thấy. Khu vực proxy được đặt trên tài khoản Scrapeless; lựa chọn khu vực theo truy vấn được hiển thị thông qua scrapeless-scraping-browser CLI cho các quy trình làm việc cần thiết.
  • Chống phát hiện fingerprinting cho mỗi phiên. UA, múi giờ, ngôn ngữ, độ phân giải màn hình, WebGL, và canvas được ngẫu nhiên hóa cho mỗi phiên, vì vậy các phiên cuộn dài được render giống hệt như lưu lượng truy cập tự nhiên.
  • Độ bền phiên. ID tác vụ browser_create được tái sử dụng qua các lệnh browser_* tiếp theo trong cùng một lượt tác nhân; cookie, vị trí cuộn, và lịch sử điều hướng đều sống trong một phiên trình duyệt đám mây duy nhất.
  • Một không gian tên MCP. Mỗi thao tác mà tác nhân cần là một cuộc gọi công cụ đơn lẻ - có thể khám phá từ bảng Công cụ của Zencoder, được xác thực theo sơ đồ bởi giao thức, và phù hợp với các prompt theo mô tả.
  • Chạy miễn phí cho tài khoản mới. Nhận một khóa API trên kế hoạch miễn phí tại app.scrapeless.com. Bề mặt công cụ MCP đầy đủ được tài liệu hóa tại github.com/scrapeless-ai/scrapeless-mcp-server và tài liệu nền tảng sống tại docs.scrapeless.com.

Các yêu cầu tiên quyết

  • Đã cài đặt Zencoder. Hoặc là tiện ích mở rộng VS Code hoặc plugin JetBrains (hỗ trợ stdio + streamable-HTTP + OAuth2 MCP từ JetBrains 2.13+).
  • Một tài khoản Scrapeless và khóa API - đăng ký tại app.scrapeless.com và sao chép khóa từ Cài đặt → Quản lý Khóa API.
  • Node.js 18 hoặc mới hơn trên máy trạm. Zencoder khởi động npx scrapeless-mcp-server dưới dạng một quy trình con cho chế độ stdio.
  • Quen thuộc cơ bản với việc chỉnh sửa JSON - cấu hình MCP của Zencoder nằm trong settings.json.

Cài đặt

Thiết lập gồm năm bước con. Sơ đồ JSON khác nhau giữa VS Code và JetBrains - chọn phần tương ứng với IDE mà bạn đang cấu hình.

1. Lấy khóa API Scrapeless của bạn

Đăng ký tại app.scrapeless.com, mở bảng điều khiển, và từ Cài đặt → Quản lý Khóa API tạo một khóa. Sao chép giá trị - nó sẽ được đưa vào cấu hình MCP ở bước 3.

2. Mở cấu hình MCP của Zencoder

Tùy chọn A - Giao diện Người dùng Công cụ Tác nhân (được đề xuất cho cả hai IDE):

  • Nhấp vào menu thêm tùy chọn ở góc trên bên phải của bảng trò chuyện Zencoder.
  • Chọn Công cụ Tác nhân.
  • Mở tab Tùy chỉnh và nhấp vào Thêm MCP Tùy chỉnh.
  • Điền vào biểu mẫu cấu hình (tên, lệnh, tham số, môi trường). Giao diện sẽ ghi vào settings.json cho bạn.

Tùy chọn B - Chỉnh sửa trực tiếp settings.json:

  • VS Code: Mở menu trong cuộc trò chuyện Zencoder → Cài đặt → cuộn đến phần Máy chủ MCP → nhấp vào Chỉnh sửa trong settings.json.
  • JetBrains: Mở Tệp → Cài đặt (hoặc IDE JetBrains → Cài đặt trên macOS) → mở rộng Công cụ → Zencoder → Máy chủ MCP.

3. Thêm máy chủ Scrapeless MCP

Schema JSON là khác nhau giữa hai IDE — VS Code bọc các mục bên trong một khóa cấp cao "zencoder.mcpServers"; JetBrains sử dụng một đối tượng trống.

VS Code — chế độ stdio (hiện tại là phương thức vận chuyển duy nhất được hỗ trợ trên VS Code):

json Copy
"zencoder.mcpServers": {
  "scrapeless": {
    "command": "npx",
    "args": ["-y", "scrapeless-mcp-server"],
    "env": {
      "SCRAPELESS_KEY": "YOUR_SCRAPELESS_KEY"
    }
  }
}

JetBrains — chế độ stdio:

json Copy
{
  "scrapeless": {
    "command": "npx",
    "args": ["-y", "scrapeless-mcp-server"],
    "env": {
      "SCRAPELESS_KEY": "YOUR_SCRAPELESS_KEY"
    }
  }
}

Lưu tệp lại. Ở lần chạy đầu tiên, npx -y scrapeless-mcp-server sẽ tải gói; các lần khởi động tiếp theo sẽ tái sử dụng phiên bản đã lưu trong bộ nhớ cache.

4. Hoặc sử dụng chế độ HTTP streamable (chỉ JetBrains 2.13+)

JetBrains 2.13+ hỗ trợ stdio, streamable-HTTP và OAuth2 MCP transports; hiện tại VS Code chỉ hỗ trợ stdio (streamable-HTTP và OAuth2 đang được theo dõi là "sẽ ra mắt sớm" trong tài liệu Zencoder). Đối với một tác nhân từ xa chạy trong một container phát triển được lưu trữ hoặc sandbox CI nơi mà npx không thể tạo một tiến trình con dài hạn một cách đáng tin cậy, người dùng JetBrains có thể chỉ định Zencoder tới điểm cuối MCP do Scrapeless lưu trữ:

json Copy
{
  "scrapeless": {
    "type": "streamable-http",
    "url": "https://api.scrapeless.com/mcp",
    "headers": {
      "x-api-token": "YOUR_SCRAPELESS_KEY"
    }
  }
}

Cùng một YOUR_SCRAPELESS_KEY hoạt động trong cả hai chế độ. Người dùng VS Code giữ nguyên trong khối stdio ở bước 3 cho đến khi Zencoder phát hành streamable-HTTP cho VS Code.

5. Xác minh kết nối

Áp dụng các thay đổi — JetBrains yêu cầu mở lại dự án sau khi chỉnh sửa cài đặt; VS Code thường tự động nhận thay đổi khi tải lại. Đảm bảo Coding Agent được bật. Trong một phiên chat Zencoder mới, gõ:

"Mở https://example.com bằng công cụ trình duyệt Scrapeless và cho tôi biết tiêu đề trang."

Tác nhân sẽ gọi browser_create, sau đó browser_goto, sau đó browser_get_text (hoặc browser_get_html), và trả lời với "Example Domain". Nếu điều đó trả về sạch, máy chủ MCP đã được kết nối, API key hợp lệ và trình duyệt đám mây có thể truy cập được.

Nếu không, các lỗi và cách khắc phục phổ biến trong lần chạy đầu tiên là:

Triệu chứng Nguyên nhân có thể Cách khắc phục
scrapeless không được liệt kê trong Công cụ Tác nhân Cấu hình không được tải Mở lại dự án (JetBrains) hoặc tải lại cửa sổ (VS Code); kiểm tra lại đường dẫn JSON và xác nhận rằng tệp phân tích được
Authentication failed / 401 từ máy chủ API key sai hoặc đã hết hạn Sao chép lại từ bảng điều khiển, dán vào env.SCRAPELESS_KEY, khởi động lại Zencoder
npx treo khi gọi lần đầu Mạng npm chậm hoặc thời gian chờ đăng ký Chạy npx -y scrapeless-mcp-server một lần trong terminal để lưu gói vào bộ nhớ cache trước, sau đó khởi động lại Zencoder
initialize response / connection closed lỗi trong quá trình khởi động MCP Dữ liệu không phải JSON được ghi vào stdout trong quá trình bắt tay JSON-RPC Sử dụng phiên bản hiện tại của scrapeless-mcp-server (log vào stderr, JSON-RPC vào stdout) và xác nhận rằng không có wrapper shell nào đang tiêm banner khởi động
Gọi công cụ trả về HTML Access Denied Hồ bơi proxy trả về một IP bị đánh dấu khi phân bổ Yêu cầu tác nhân gọi browser_close sau đó browser_create một lần nữa; các phân bổ tiếp theo sẽ thành công

Cách bạn thực sự sử dụng điều này: yêu cầu tác nhân Zencoder của bạn

Sau khi cài đặt, tác nhân sở hữu vòng lặp khám phá → trích xuất. Máy chủ MCP đưa cho Zencoder một danh sách công cụ kiểu; tác nhân đọc mô tả công cụ và lập các cuộc gọi tuần tự dựa trên yêu cầu. Không có tools.json nào cần soạn thảo và không có cuộc gọi MCP thủ công nào cần phát hành từ phía IDE.

Zencoder dành riêng các phím tắt @ cho các Tích hợp Native tích hợp sẵn — @Jira hoạt động vì Jira là một tích hợp native; máy chủ MCP không được gọi bằng @<servername>. Người lập kế hoạch của tác nhân khớp câu hỏi với các mô tả công cụ, vì vậy hãy diễn đạt yêu cầu theo hành động ("render the page at…", "search Google for…", "scrape that URL as markdown") và công cụ Scrapeless phù hợp sẽ được gọi.

Các yêu cầu bạn có thể dán

Bạn gõ Tác nhân làm gì
"Tìm kiếm Google với vector database benchmarks 2026 và trả về 10 kết quả hàng đầu dưới dạng JSON." google_search → danh sách kết quả đã gõ.
"Render trang tài liệu React tại https://react.dev/learn/synchronizing-with-effects và cho tôi markdown." scrape_markdown → trang nhà xuất bản dưới dạng markdown.
"Mở https://pricing.example.com, cuộn bảng kế hoạch, và trả về tên, giá cả và danh sách tính năng dưới dạng JSON." browser_createbrowser_gotobrowser_scrollbrowser_get_html → trích xuất đã gõ.
"Lấy các chủ đề tìm kiếm đang thịnh hành cho developer tools ở Mỹ từ Google Trends." google_trends.
"Chụp màn hình toàn trang của https://example.com/landing và lưu nó bên cạnh landing.tsx." scrape_screenshot → ghi tệp trong không gian làm việc.
"Mở https://www.google.com/search?q=mortgage+rates và trả về các thẻ SERP." Khu vực mặc định của tài khoản điều khiển việc xuất proxy; cố định một khu vực khác với nhiều khóa API (xem FAQ).
"Đối với mỗi kết quả trong tìm kiếm Google trước đó, hiển thị trang dưới dạng markdown và tóm tắt nó trong hai câu." Chuỗi google_searchscrape_markdown × N → Tóm tắt LLM.
"Chụp ảnh màn hình trang chính của https://example.com và báo cáo cây truy cập." browser_snapshot.

Ví dụ làm việc: trích xuất trang định giá bên trong Zencoder

Bạn gõ:

"Sử dụng công cụ trình duyệt Scrapeless để mở https://example-saas.com/pricing, cuộn lưới kế hoạch xuống dưới cùng, và trả lại tên, giá và các điểm tính năng theo từng kế hoạch dưới dạng JSON. Lưu kết quả vào pricing.json trong không gian làm việc đang mở."

Kế hoạch của tác nhân (bằng tiếng Anh đơn giản):

  1. Gọi browser_create để tạo một phiên trình duyệt đám mây.
  2. Gọi browser_goto với URL định giá.
  3. Gọi browser_wait_for theo điểm đánh dấu thẻ kế hoạch để việc trích xuất diễn ra trên DOM đã được làm đầy thay vì trên phần vỏ SPA.
  4. Gọi browser_scroll để hiển thị bất kỳ mức nào bên dưới, sau đó browser_get_html.
  5. Phân tích các thẻ kế hoạch thành mảng JSON; coi bất kỳ trường nào không có trên thẻ là null thay vì làm thất bại việc trích xuất.
  6. Gọi browser_close với sessionId được trả về bởi browser_create.
  7. Ghi mảng vào pricing.json bằng công cụ file tích hợp của Zencoder.

Những gì bạn nhận được trở lại (hình dạng minh họa):

json Copy
[
  {
    "name": "Starter",
    "price": "$0 / tháng",
    "features": ["1 chỗ ngồi", "1.000 sự kiện/tháng", "Hỗ trợ cộng đồng"]
  },
  {
    "name": "Pro",
    "price": "$29 / tháng",
    "features": ["10 chỗ ngồi", "100K sự kiện/tháng", "Hỗ trợ qua email", "Tên miền tùy chỉnh"]
  },
  {
    "name": "Business",
    "price": "Liên hệ với bộ phận bán hàng",
    "features": ["Chỗ ngồi không giới hạn", "Khối lượng sự kiện tùy chỉnh", "SLA", "SSO/SAML"]
  }
]
// Sơ đồ phản ánh những gì tác nhân phát ra khi được nhắc trích xuất lưới định giá.
// Giá trị trường là các mẫu minh họa.

Zencoder bỏ pricing.json vào cây không gian làm việc và hiển thị mỗi cuộc gọi công cụ MCP trong theo dõi cuộc trò chuyện để quá trình từng bước có thể được kiểm toán.

Định hình các lời nhắc: kiểm soát những gì trở lại

Cách diễn đạt Hiệu ứng
"…trả về JSON" / "…dưới dạng markdown" Định dạng đầu ra.
"…các trường: chỉ tên, giá" Giới hạn việc trích xuất.
"…và lưu nó vào <đường dẫn> trong không gian làm việc" Kích hoạt công cụ file tích hợp của Zencoder sau khi trích xuất.
"…nhấp vào mỗi thẻ trước khi trích xuất" Kích hoạt một browser_click cho mỗi dòng + trích xuất lại.
"…sử dụng ảnh chụp màn hình nếu việc trích xuất HTML thất bại" Rơi trở lại vào scrape_screenshot và việc trích xuất đa phương thức.
"…thử lại một lần nếu phản hồi đầu tiên là rỗng" Kích hoạt browser_close + browser_create thử lại trên một phiên mới.

Lấy khóa API của bạn trong gói miễn phí: app.scrapeless.com


Giao diện công cụ MCP của Scrapeless

Danh sách đầy đủ các công cụ mà Zencoder phát hiện khi máy chủ scrapeless kết nối:

Công cụ Mục đích
browser_create Tạo một phiên trình duyệt đám mây, trả về một sessionId.
browser_goto Điều hướng đến một URL trong phiên hoạt động.
browser_wait_for Chặn cho đến khi một bộ chọn được hiển thị.
browser_wait Ngủ trong một khoảng thời gian (ms).
browser_get_html Trả về DOM đã được hiển thị dưới dạng tải trọng văn bản.
browser_get_text Trả về văn bản trang visible.
browser_snapshot Trả về cây truy cập của trang hiện tại.
browser_click Nhấp vào một bộ chọn.
browser_type Gõ vào một đầu vào.
browser_press_key Điều khiển sự kiện bàn phím (Tab, Enter, Cuối, PageDown, …).
browser_scroll Cuộn tài liệu đang hoạt động.
browser_scroll_to Cuộn đến tọa độ tuyệt đối (x, y).
browser_screenshot Chụp ảnh màn hình của trang đang hoạt động.
browser_go_back / browser_go_forward Lịch sử điều hướng.
browser_close Giải phóng phiên trình duyệt đám mây (cần sessionId — tham số phải theo kiểu camelCase).
scrape_html Lấy URL một lần, trả về HTML đã được hiển thị (không cần phiên).
scrape_markdown Lấy URL một lần, trả về markdown sạch.
scrape_screenshot Ảnh chụp màn hình một lần.
google_search Trình thu thập SERP, trả về các hàng kết quả đã gõ.
google_trends Tải trọng xu hướng cho một chủ đề trong một khu vực.

Các công cụ browser_* chia sẻ trạng thái thông qua sessionId được trả về bởi browser_create. Các công cụ scrape_* và các công cụ Google là không có trạng thái và định tuyến trực tiếp qua API Scrapeless mà không cần tạo một phiên. Các đối số công cụ sử dụng camelCase trên toàn bộ giao diện (sessionId, proxyCountry).


Năm quy trình mang lại lợi ích cho việc tích hợp

Mỗi khối bên dưới là một quy trình dựa trên lời nhắc bên trong Zencoder. Tác nhân Thu thập Thông tin RepoGatherer tập hợp ngữ cảnh dự án, tác nhân Lập trình chạy chuỗi MCP, và tác nhân Kiểm tra Đơn vị xác minh hình dạng vật cố kết quả — tất cả trong một lượt trò chuyện.

1. Tín hiệu SERP và xu hướng trực tiếp cho công việc tính năng

Một flag tính năng thường phụ thuộc vào những gì người dùng đang tìm kiếm. Hãy yêu cầu agent gọi google_trends cho chủ đề trong khu vực mục tiêu, sau đó gọi google_search cho các thuật ngữ chính, rồi ghi kết quả vào một tệp fixture mà ứng dụng đang chạy tiêu thụ. Toàn bộ vòng lặp diễn ra bên trong một vòng lặp của Zencoder và làm mới khi lời nhắc được phát lại.

2. Theo dõi giá cả của đối thủ trong một tệp so sánh

Ghi một danh sách các URL giá cả của đối thủ vào cuộc trò chuyện và yêu cầu agent trích xuất tên gói, giá cả, và các tính năng chính trên mỗi trang, loại bỏ trùng lặp theo gói, và ghi bảng đã gộp lại vào competitors.md trong không gian làm việc. Các lần chạy tiếp theo sẽ so sánh với snapshot trước đó và chỉ cập nhật các hàng đã thay đổi.

3. Danh sách khách hàng từ danh bạ công khai vào dự án

Đối với các nguyên mẫu tạo khách hàng, Coding Agent duyệt qua một danh bạ công khai (danh sách nhà cung cấp phần mềm, doanh nghiệp địa phương, hoặc các chuyên gia có giấy phép), gọi browser_goto cho mỗi trang chi tiết, trích xuất các hàng liên hệ, và ghi các hồ sơ dưới dạng seed.sql hoặc leads.json cạnh lớp mô hình. Việc thoát proxy cư dân và render JS xảy ra ở lớp trình duyệt đám mây.

4. Tập hợp RAG từ các trang của nhà xuất bản

Đối với một đường ống nhúng được xây dựng bên trong Zencoder, agent duyệt qua danh sách URL hạt giống, gọi scrape_markdown cho mỗi trang, chia markdown thành các khối, và ghi mỗi cặp khối + URL vào corpus.jsonl. Bởi vì markdown đã sạch, các ranh giới khối nằm trên các tiêu đề và đoạn văn thay vì giữa các thẻ.

5. Tài sản kiểm tra hình ảnh cho Web Dev Agent

Đối với một cải tiến UI, hãy yêu cầu Web Dev Agent thực hiện một scrape_screenshot toàn trang cho môi trường staging và sản xuất cho mỗi trang trong routes.ts, sau đó so sánh các cặp. Các hình chụp sẽ quay trở lại dưới dạng tệp trong không gian làm việc; sự khác biệt sống trong cuộc trò chuyện.


Kỹ năng tách biệt với MCP — và chúng hình thành

Zencoder cung cấp một hệ thống Kỹ năng bên cạnh MCP. Một Kỹ năng sống tại ~/.zencoder/skills/<name>/SKILL.md với phần đầu YAML (name, description) và một phần markdown hướng dẫn agent khi nàonhư thế nào để sử dụng một công cụ. Các Kỹ năng có thể phát hành các kịch bản và tài nguyên cùng với tệp SKILL.md.

MCP định nghĩa các công cụ tồn tại; Kỹ năng định nghĩa cách sử dụng chúng một cách tốt. Cả hai đều là bổ sung - việc cài đặt một Kỹ năng dạy agent ghép nối browser_createbrowser_gotobrowser_wait_forbrowser_get_html thành một mẫu khám phá → trích xuất sạch sẽ nâng cao tỷ lệ thành công của các lời nhắc ngôn ngữ tự nhiên trên cùng một bề mặt công cụ MCP. Blog không giả định có bất kỳ Kỹ năng Scrapeless nào đã được xây dựng trong hệ sinh thái Zencoder; người dùng nào muốn có một có thể tự viết một tại ~/.zencoder/skills/scrapeless/SKILL.md theo danh sách công cụ ở trên.


Những gì cần biết trước khi đi vào sản xuất

  • Kỷ luật Stdout quan trọng. Giao thức MCP stdio sử dụng stdout cho JSON-RPC. Một máy chủ ghi văn bản không phải JSON vào stdout sẽ phá vỡ handshake. Phiên bản hiện tại của scrapeless-mcp-server ghi log vào stderr; nếu một nhánh tùy chỉnh đang được sử dụng, hãy kiểm tra đích log.
  • Điều khiển khu vực theo từng cuộc gọi không có trên bề mặt MCP. Trình duyệt đám mây đi qua khu vực đã cấu hình của tài khoản Scrapeless. Các quy trình làm việc cần ghim khu vực theo từng truy vấn (kết quả Mỹ so với Đức so với Nhật) gọi CLI scrapeless-scraping-browser với --proxy-country hoặc giữ nhiều khóa API cho các khu vực mặc định khác nhau.
  • VS Code hiện tại chỉ hỗ trợ stdio. Giao thức Streamable-HTTP và OAuth2 đang được theo dõi là "sắp tới" cho VS Code trong tài liệu Zencoder. JetBrains 2.13+ đã có cả ba. Một mẫu cấu hình đa IDE cần HTTP phải ở lại JetBrains hoặc chờ cập nhật của VS Code.
  • JetBrains yêu cầu phải mở lại dự án sau khi chỉnh sửa settings.json; VS Code thường lấy thay đổi khi tải lại.
  • Đồng thời. Giữ ≤ 3 phiên đồng thời trên mỗi máy chủ để chạy ổn định. Đối với các công việc theo lô cần phát tán cao hơn, hãy điều khiển CLI từ một nhóm công nhân thay vì phát hành các cuộc gọi MCP song song từ một agent duy nhất.
  • Hình thái phản hồi của MCP. Các phản hồi công cụ quay trở lại dưới dạng content[0].text (văn bản thuần túy). Các công cụ dữ liệu không trạng thái trả về văn bản (google_search, google_trends, scrape_html, scrape_markdown) thêm tiền tố vào tải trọng của chúng với Response:\n\n trước khi vào nội dung; trình lập kế hoạch của Zencoder tự động xử lý tiền tố này, nhưng các kịch bản tùy chỉnh phân tích phản hồi thô cần phải loại bỏ nó. scrape_screenshot trả về nhị phân hình ảnh trực tiếp. Các công cụ browser_* trả về tải trọng văn bản của chúng mà không có tiền tố.
  • Scrapeless được cài đặt trực tiếp từ gói, không thông qua Thư viện MCP của Zencoder. Tính đến thời điểm viết, Scrapeless không được liệt kê trong catalog Thư viện MCP trong IDE - hãy dán khối JSON từ bước 3 thay vì tìm kiếm trong Thư viện. Đường đi Thư viện MCP cũng có sẵn cho các MCP được xây dựng sẵn mà Zencoder phát hành với thiết lập một lần nhấn.

Kết luận: mở rộng khả năng của các agent Zencoder qua web công khai.

Kết nối server MCP bớt phế liệu vào Zencoder sẽ thu nhỏ lại thành một khối JSON — "zencoder.mcpServers" trong settings.json trên VS Code, một đối tượng trống trên JetBrains — và một lần tải lại. Sau đó, mỗi tác nhân Zencoder sẽ có một trình duyệt đám mây cứng cáp, đầu ra proxy dân cư, một trình thu thập dữ liệu SERP Google, một trình thu thập dữ liệu Trends, và các công cụ HTML/Markdown/Ảnh chụp một lần — có thể truy cập thông qua các lệnh bằng ngôn ngữ tự nhiên. IDE tiếp tục sở hữu mã sinh, cây thư mục, và terminal; trình duyệt đám mây giữ cho tác nhân hiển thị các trang đã được kết xuất thực.

Để có cùng bề mặt Scrapeless trong Google Antigravity, hãy xem hướng dẫn tích hợp Antigravity. Đối với bề mặt công cụ server MCP chính quy và một ví dụ làm việc với Google Maps, hãy xem hướng dẫn server MCP. Đối với các bề mặt tác nhân thích con đường CDP thô hơn so với MCP, hãy xem bài đăng tích hợp Hermes. Cấp tài khoản mới trên Scrapeless bao gồm thời gian chạy Scraping Browser miễn phí; các đường nâng cấp sau khi thời gian chạy miễn phí được tiêu thụ có tại scrapeless.com/en/pricing. Mô hình này nhất quán trên mọi bề mặt tác nhân: ghim phương tiện vận chuyển phù hợp cho IDE chủ, chụp ảnh hoặc kết xuất trước khi trích xuất, giữ phiên làm việc qua nhiều lần quay, và coi các trường vắng mặt là nullable.


Sẵn sàng để Xây Dựng Pipeline Dữ Liệu Dựa Trên AI của Bạn?

Tham gia cộng đồng của chúng tôi để yêu cầu kế hoạch miễn phí và kết nối với các nhà phát triển xây dựng các pipeline dữ liệu được điều khiển bởi Zencoder trên Scrapeless: Discord · Telegram.

Đăng ký tại app.scrapeless.com để có thời gian chạy Scraping Browser miễn phí, và thích ứng các mẫu ở trên cho các không gian làm việc, khu vực, và trang mà các tác nhân Zencoder của bạn cần.


Câu Hỏi Thường Gặp

Q1: Những bề mặt Zencoder nào hỗ trợ server MCP Scrapeless?
Cả tiện ích mở rộng VS Code và plugin JetBrains. Sơ đồ JSON khác nhau (VS Code bọc các mục trong "zencoder.mcpServers"; JetBrains sử dụng một đối tượng trống), và JetBrains 2.13+ hỗ trợ stdio + streamable-HTTP + OAuth2 trong khi VS Code hiện chỉ hỗ trợ stdio.

Q2: Việc thu thập dữ liệu với Zencoder + Scrapeless có hợp pháp không?
Việc thu thập dữ liệu công khai được phép rộng rãi ở hầu hết các khu vực pháp lý, nhưng các quy tắc khác nhau tùy theo quốc gia và điều khoản dịch vụ của trang. Xem xét ToS của trang mục tiêu, tôn trọng robots.txt nơi áp dụng, không thu thập dữ liệu cá nhân mà không có cơ sở pháp lý, và tham khảo ý kiến cố vấn cho các pipeline quy mô thương mại.

Q3: Tôi có cần một proxy dân cư không?
Có cho bất kỳ trang nào có bảo vệ chống bot đáng kể — hầu hết các nhà bán lẻ, thị trường, SERP, và các trang đích SaaS lớn. Server MCP Scrapeless mặc định định tuyến mọi cuộc gọi browser_*scrape_* qua bể dân cư; không cần cấu hình proxy riêng cho cuộc gọi hoạt động.

Q4: Tôi có thể chọn khu vực proxy dân cư theo yêu cầu từ bề mặt MCP không?
Không từ công cụ browser_create của MCP — phiên trình duyệt đám mây sử dụng khu vực proxy được cấu hình trên tài khoản Scrapeless. Để chọn khu vực theo truy vấn (US so với DE so với JP), điều khiển trình duyệt đám mây thông qua scrapeless-scraping-browser CLI với --proxy-country, hoặc duy trì nhiều khóa API cho các khu vực mặc định khác nhau.

Q5: chế độ stdio so với chế độ streamable-HTTP — cái nào phù hợp với Zencoder?
VS Code hiện chỉ hỗ trợ stdio; JetBrains 2.13+ hỗ trợ cả hai. Stdio là mặc định phù hợp cho một trạm làm việc của nhà phát triển — Zencoder khởi động npx scrapeless-mcp-server như một tiến trình con và giao tiếp JSON-RPC qua stdin/stdout của nó. Streamable-HTTP (chỉ JetBrains) là mặc định phù hợp khi máy chủ chạy trong một container phát triển được lưu trữ hoặc sandbox CI nơi máy chủ không thể duy trì tiến trình con sống lâu. Cả hai chế độ đều sử dụng cùng một khóa API.

Q6: VS Code sử dụng "zencoder.mcpServers" nhưng JetBrains sử dụng đối tượng trống — tại sao lại có sự khác biệt?
Đó là cách mà hai bảng cài đặt của Zencoder được nối. Tệp settings.json của VS Code là tệp cài đặt toàn cục của IDE với các khóa có không gian tên tiện ích mở rộng, vì vậy Zencoder sử dụng "zencoder.mcpServers". JetBrains hiển thị phần MCP Servers trực tiếp dưới Tools → Zencoder → MCP Servers, vì vậy JSON mà người dùng dán chỉ là đối tượng bên trong. Các khóa command/args/env/type/url/headers thì giống nhau giữa cả hai IDE — chỉ khác nhau ở lớp bao bọc.

Q7: Làm thế nào tôi giữ khóa API ra khỏi tệp JSON?
Sử dụng một placeholder trong JSON và tiêm giá trị qua biến môi trường hệ điều hành. Đặt SCRAPELESS_KEY trong shell khởi động Zencoder (export SCRAPELESS_KEY=... trên macOS/Linux hoặc [Environment]::SetEnvironmentVariable("SCRAPELESS_KEY", "...", "User") trên Windows PowerShell), sau đó tham chiếu ${SCRAPELESS_KEY} trong khối env của cấu hình. Khởi động lại Zencoder để biến mới phát tán.

Q8: Cuộc gọi đầu tiên browser_create trả về os error 10054 hoặc 503. Phải làm gì bây giờ?
Cả hai đều là lỗi tạm thời khi khởi tạo phiên trên bể proxy Scrapeless. Một lần thử lại thường thành công — yêu cầu tác nhân gọi browser_close (nếu một phiên đã được tạo) và browser_create lại, hoặc bao quanh cuộc gọi trong một vòng lặp thử lại 2-3 lần.

Q9: Zencoder quyết định gọi công cụ Scrapeless nào?
Mỗi công cụ MCP đều có một tên và một sơ đồ; trình lập kế hoạch của Zencoder đọc các mô tả và khớp chúng với yêu cầu. Không có phím tắt @<tên máy chủ> cho các máy chủ MCP — @Jira@GitHub được chuyển đến Tích hợp Gốc, không phải đến MCP. Diễn đạt nhiệm vụ một cách tự nhiên ("lấy dữ liệu từ URL này dưới dạng markdown", "tìm kiếm Google cho X") và công cụ Scrapeless phù hợp sẽ được chọn.

Q10: Kỹ năng có cần thiết không, hay chỉ là tốt để có?
Tùy chọn. Máy chủ MCP một mình cung cấp cho tác nhân mọi công cụ Scrapeless. Một Kỹ năng tại ~/.zencoder/skills/scrapeless/SKILL.md sẽ nâng cao tỷ lệ thành công từ yêu cầu đến công cụ chính xác bằng cách dạy tác nhân mô hình phát hiện → trích xuất, nhưng sự tích hợp vẫn hoạt động từ đầu đến cuối mà không cần một cái nào.

Q11: Tôi có thể chạy cái này mà không cần Zencoder không?
Có. Máy chủ MCP Scrapeless là một máy chủ MCP tiêu chuẩn, có thể gọi từ Claude Desktop, Claude Code, Cursor, OpenAI Codex CLI, Gemini CLI, VS Code + GitHub Copilot Chat, Google Antigravity, hoặc bất kỳ khách hàng tùy chỉnh nào được xây dựng dựa trên MCP TypeScript SDK. Cùng một đoạn JSON có thể sử dụng cho mỗi cái (với khóa bao bọc được điều chỉnh theo từng khách hàng). Đối với các bề mặt không phải MCP, trình duyệt đám mây cũng có thể truy cập thông qua scrapeless-scraping-browser CLI và điểm cuối WSS tại wss://browser.scrapeless.com/browser.

Tại Scrapless, chúng tôi chỉ truy cập dữ liệu có sẵn công khai trong khi tuân thủ nghiêm ngặt các luật, quy định và chính sách bảo mật trang web hiện hành. Nội dung trong blog này chỉ nhằm mục đích trình diễn và không liên quan đến bất kỳ hoạt động bất hợp pháp hoặc vi phạm nào. Chúng tôi không đảm bảo và từ chối mọi trách nhiệm đối với việc sử dụng thông tin từ blog này hoặc các liên kết của bên thứ ba. Trước khi tham gia vào bất kỳ hoạt động cạo nào, hãy tham khảo ý kiến ​​cố vấn pháp lý của bạn và xem xét các điều khoản dịch vụ của trang web mục tiêu hoặc có được các quyền cần thiết.

Bài viết phổ biến nhất

Danh mục