Tự động hóa trình duyệt qua MCP: Điều khiển trình duyệt đám mây với Scrapeless
Advanced Bot Mitigation Engineer
Tóm tắt:
- Máy chủ Scrapeless MCP cung cấp 16 công cụ
browser_*cho phép điều khiển một trình duyệt đám mây, vì vậy một kịch bản có thể nhấp chuột, cuộn, điều hướng và đọc các trang đã được hiển thị mà không cần Chromium cục bộ. browser_createtrả về một id phiên, và mọi cuộc gọi sau đó,browser_goto,browser_get_text,browser_close, đều mang theo id đó để thao tác trên cùng một trình duyệt.- Các công cụ này thực thi JavaScript: điều hướng đến một trang trích dẫn do khách hàng tạo và đọc lại sẽ trả về 10 trích dẫn đã được hiển thị.
- Đây là đối tác của
scrape_markdown: hãy sử dụng công cụ nội dung cho một trang mà bạn có thể lấy trong một cuộc gọi, và các công cụ trình duyệt khi trang cần tương tác hoặc chờ đợi. - Không có khóa nhà cung cấp mô hình nào được tham gia, vì các công cụ trình duyệt được gọi trực tiếp thông qua phiên MCP.
- Bắt đầu trên kế hoạch miễn phí Scrapeless và điều khiển trình duyệt đám mây đầu tiên của bạn.
Một số trang không trả nội dung cho một yêu cầu đơn lẻ. Dữ liệu xuất hiện sau khi nhấp, cuộn hoặc chờ đợi một tập lệnh chạy, và một lần lấy trả lại shell trước khi bất kỳ điều đó xảy ra. Máy chủ Scrapeless MCP đáp ứng điều này với một bộ công cụ trình duyệt điều khiển một trình duyệt đám mây thực tế qua Giao thức Ngữ cảnh Mô hình, vì vậy mã của bạn thực hiện các hành động cấp cao và trình duyệt chạy trên hạ tầng Scrapeless.
Hướng dẫn này kết nối đến máy chủ, liệt kê các công cụ trình duyệt, và điều khiển một phiên từ việc tạo ra đến việc đọc đã được hiển thị và đóng sạch sẽ, tất cả đều được xác minh với máy chủ trực tiếp và trình duyệt trực tiếp. Không có mô hình nào trong vòng, vì vậy không có gì ở đây là một khoảng trống.
Tại sao là các công cụ trình duyệt Scrapeless
Máy chủ Scrapeless MCP phục vụ 21 công cụ, và 16 trong số đó là điều khiển trình duyệt: tạo và phá bỏ, điều hướng, nhấp chuột, gõ, cuộn, nhấn phím, chụp màn hình và chờ đợi. Chúng điều khiển trình duyệt đám mây Scrapeless, đây là loại điều khiển lập trình tương tự như một ngăn xếp tự động hóa cục bộ nhận được từ Giao thức DevTools của Chrome, ngoại trừ trình duyệt ở xa và không cần cài đặt gì cả. Bài viết Trình duyệt Scraping của Scrapeless cung cấp chi tiết về trình duyệt đám mây và mô hình đồng thời của nó.
Chúng nằm cạnh các công cụ nội dung. scrape_markdown trả về một trang trong một cuộc gọi và là lựa chọn đúng khi một lần lấy là đủ. Các công cụ browser_* dành cho các trang cần một phiên: tương tác, chờ đợi, sau đó đọc.
Điều kiện tiên quyết
- Python 3.10 trở lên.
- Một khóa Scrapeless API từ bảng điều khiển, được xuất ra là
SCRAPELESS_API_KEY. - Không có trình duyệt cục bộ. Các công cụ điều khiển một trình duyệt đám mây trên Scrapeless.
Cài đặt
Cài đặt thư viện khách hàng MCP.
bash
pip install mcp
Đặt khóa Scrapeless của bạn trong shell. Sử dụng khóa thực tại thời điểm chạy và giữ chỗ ký tự ra khỏi mã nguồn của bạn.
bash
export SCRAPELESS_API_KEY="sk_your_key_here"
Kết nối và liệt kê các công cụ trình duyệt
Mở một kết nối HTTP có thể phát trực tuyến đến máy chủ, khởi tạo phiên, và liệt kê các công cụ. Lọc theo tiền tố browser_ cho thấy vốn từ tương tác mà trình duyệt đám mây cung cấp.
python
import asyncio
import os
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client
async def main() -> None:
async with streamablehttp_client(
"https://api.scrapeless.com/mcp", headers={"x-api-token": os.environ["SCRAPELESS_API_KEY"]}
) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
names = sorted(tool.name for tool in (await session.list_tools()).tools)
browser_tools = [name for name in names if name.startswith("browser_")]
print("tổng số công cụ:", len(names))
print("các công cụ trình duyệt:", len(browser_tools))
print(", ".join(browser_tools))
asyncio.run(main())
Máy chủ báo cáo 21 công cụ, 16 trong số đó là điều khiển trình duyệt.
text
tổng số công cụ: 21
các công cụ trình duyệt: 16
browser_click, browser_close, browser_create, browser_get_html, browser_get_text, browser_go_back, browser_go_forward, browser_goto, browser_press_key, browser_screenshot, browser_scroll, browser_scroll_to, browser_snapshot, browser_type, browser_wait, browser_wait_for
Lớp vận chuyển và tin nhắn tuân theo đặc tả Giao thức Ngữ cảnh Mô hình, theo đặc tả JSON-RPC 2.0.
Thực hiện một phiên trình duyệt
Công cụ trình duyệt là trạng thái, vì vậy mẫu là tạo, hành động, đọc, đóng. browser_create trả về một mã phiên trong văn bản của nó; hãy nắm bắt nó và truyền cho mọi cuộc gọi sau. Ví dụ điều hướng đến một trang trích dẫn được render bằng JavaScript và đọc lại văn bản đã render.
python
import asyncio
import os
import re
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client
def text_of(result) -> str:
return "\n".join(block.text for block in result.content if getattr(block, "type", None) == "text")
async def main() -> None:
async with streamablehttp_client(
"https://api.scrapeless.com/mcp", headers={"x-api-token": os.environ["SCRAPELESS_API_KEY"]}
) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
created = text_of(await session.call_tool("browser_create", {}))
session_id = re.search(r"ID:\s*([a-z0-9-]+)", created).group(1)
print("phiên đã được tạo:", bool(session_id))
await session.call_tool("browser_goto", {"sessionId": session_id, "url": "https://quotes.toscrape.com/js/"})
text = text_of(await session.call_tool("browser_get_text", {"sessionId": session_id}))
print("trích dẫn đã render:", text.count("Tags:"))
print("chứa một câu trích dẫn:", "Thế giới như chúng ta đã tạo ra nó" in text)
await session.call_tool("browser_close", {"sessionId": session_id})
print("phiên đã đóng: True")
asyncio.run(main())
Trang trích dẫn hiển thị nội dung của nó bằng JavaScript, và trình duyệt đám mây chạy nó, vì vậy browser_get_text trả về các trích dẫn đã render thay vì một cấu trúc rỗng.
text
phiên đã được tạo: True
trích dẫn đã render: 10
chứa một câu trích dẫn: True
phiên đã đóng: True
10 câu trích dẫn đã render là bằng chứng cho thấy trình duyệt đã thực thi JavaScript của trang; một lần tải đơn giản của cùng một URL trả về số không. Từ đây, browser_click, browser_type, và browser_scroll mở rộng phiên đến các trang cần tương tác trước khi nội dung xuất hiện, và browser_close giải phóng trình duyệt đám mây khi công việc hoàn thành.
Kết luận
Các công cụ trình duyệt Scrapeless MCP biến một trình duyệt đám mây thành một tập hợp các hành động cấp cao mà bất kỳ khách hàng MCP nào cũng có thể gọi. Kết nối, liệt kê 16 công cụ trình duyệt, tạo một phiên, điều hướng, đọc văn bản đã render và đóng, tất cả đều không cần trình duyệt địa phương và không có mô hình trong vòng lặp. Hãy tìm scrape_markdown khi một cuộc gọi nhận được trang và cho các công cụ trình duyệt khi trang cần một phiên để cung cấp nội dung của nó. Bắt đầu từ các kịch bản trên và thêm vào các lần nhấp, gõ và cuộn mà mục tiêu của bạn yêu cầu.
Đăng ký một tài khoản Scrapeless miễn phí để có được một API key, và kiểm tra giá Scrapeless khi bạn lập kế hoạch cho một công việc định kỳ.
Câu hỏi thường gặp
Q: Các công cụ trình duyệt Scrapeless MCP có cần một trình duyệt địa phương không?
Không. Các công cụ browser_* điều khiển một trình duyệt đám mây được lưu trữ trên Scrapeless, vì vậy một kịch bản điều khiển một trình duyệt thực mà không cần cài đặt Chromium địa phương. Đó là sự khác biệt so với một ngăn xếp tự động hóa địa phương: trình duyệt chạy từ xa và bạn phát hành các hành động qua phiên MCP.
Q: Làm thế nào các công cụ trình duyệt giữ trạng thái giữa các cuộc gọi?
browser_create trả về một mã phiên, và mỗi cuộc gọi tiếp theo truyền mã đó trong đối số sessionId. Mã này liên kết browser_goto, browser_get_text, và các công cụ tương tác đến cùng một trình duyệt, đó là cách mà một luồng nhiều bước hành động trên một trang thay vì bắt đầu lại mỗi lần gọi.
Q: Điều này khác với scrape_markdown như thế nào?
scrape_markdown tải và trả về một trang trong một cuộc gọi duy nhất, điều này rất lý tưởng khi nội dung có sẵn để đọc. Các công cụ trình duyệt mở một phiên trạng thái cho các trang cần nhấp chuột, gõ, cuộn, hoặc chờ trước khi nội dung xuất hiện, và chúng trả về kết quả đã render mà công cụ nội dung không thể tiếp cận trên những trang đó.
Q: Các công cụ trình duyệt có render JavaScript không?
Có. Trình duyệt đám mây thực thi các kịch bản của trang, vì vậy điều hướng một trang được render bằng client và gọi browser_get_text trả về nội dung đã render, trong lần chạy được xác thực là 10 trích dẫn từ một trang trích dẫn JavaScript. Một lần tải đơn giản của cùng một trang không trả về bất kỳ cái nào trong số đó.
Q: Các công cụ trình duyệt nào có sẵn?
Máy chủ cung cấp 16 công cụ: browser_create, browser_close, browser_goto, browser_go_back, browser_go_forward, browser_get_text, browser_get_html, browser_click, browser_type, browser_press_key, browser_scroll, browser_scroll_to, browser_screenshot, browser_snapshot, browser_wait, và browser_wait_for. Tất cả chúng đều bao gồm điều hướng, tương tác, chờ đợi và đọc.
Q: Tôi có cần một khóa nhà cung cấp mô hình để sử dụng các công cụ trình duyệt không?
Không. Các công cụ trình duyệt được gọi trực tiếp thông qua phiên MCP chỉ với khóa API Scrapeless, vì không có mô hình nào quyết định công cụ nào sẽ được gọi. Khóa nhà cung cấp mô hình chỉ có ý nghĩa nếu bạn giao những công cụ này cho một khung đại lý và để một mô hình điều khiển chúng.
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.



