Skyvern + Trình Duyệt Scraping Không Rác: Một Đại Diện AI trên Đám Mây
Advanced Bot Mitigation Engineer
Skyvern là một trình duyệt tác nhân quyết định làm gì bằng cách nhìn vào trang: nó chụp ảnh màn hình, một mô hình thị giác đọc nó, và tác nhân nhấp chuột, gõ, hoặc đọc dựa trên những gì nó thấy. Hướng tới trình duyệt của tác nhân đến Scrapeless Scraping Browser qua Giao thức DevTools Chrome và nó điều khiển một Chromium cloud với việc ra khỏi mạng dân cư thay vì một trình duyệt mà bạn chạy và ẩn đi trên máy của riêng bạn.
Sự kết hợp này là tự nhiên. Skyvern cung cấp lý luận - biến một mục tiêu bằng tiếng Anh đơn giản thành một chuỗi các hành động của trình duyệt - và Scrapeless Scraping Browser cung cấp môi trường thực thi mà tác nhân hoạt động trong đó. Hướng dẫn này cài đặt môi trường thực thi địa phương của Skyvern, hướng nó tới Scrapeless Scraping Browser thông qua kết nối CDP, đưa cho nó một mục tiêu trong một câu, và theo dõi nó hoàn thành nhiệm vụ, với tác nhân được thực thi trực tiếp trên trình duyệt cloud.
Tại sao chạy Skyvern trên Scrapeless Scraping Browser
Một tác nhân thị giác chỉ hữu ích bằng trình duyệt mà nó điều khiển. Chạy Skyvern trên một Chromium địa phương và bạn sở hữu toàn bộ môi trường thực thi: quá trình trình duyệt, bộ nhớ của nó, địa chỉ IP ra ngoài duy nhất của nó, và bất cứ điều gì một trang web bận rộn làm với địa chỉ IP đó. Hướng nó tới Scrapeless Scraping Browser và một nửa của nó chuyển lên đám mây - tác nhân kết nối qua CDP đến một phiên Chromium mà Scrapeless dựng và duy trì, với việc ra ngoài dân cư mà bạn có thể chỉ định đến một đất nước. Chi tiết kết nối mà nó gắn vào là các chi tiết trong tài liệu Scrapeless Scraping Browser.
Không có gì thay đổi về tác nhân. Skyvern vẫn chụp ảnh màn hình, lý luận, và hành động; nó đơn giản là hành động trong một trình duyệt cloud được tiếp cận qua WebSocket thay vì một trình duyệt địa phương. Điều đó giữ lý luận ở phía bạn và đội tàu trình duyệt ở phía Scrapeless, đó là sự phân chia mà bạn muốn khi một mục tiêu trải dài nhiều trang hoặc một trang web chọn lọc về lưu lượng mà nó phục vụ.
Điều kiện tiên quyết
Bạn cần Python 3.11 hoặc mới hơn, Skyvern's local extra, một khóa API Scrapeless cho phiên trình duyệt, và một khóa cho mô hình có khả năng thị giác. Nhận khóa Scrapeless trên gói miễn phí tại app.scrapeless.com. Chế độ địa phương của Skyvern chạy tác nhân trong quá trình, vì vậy không cần máy chủ hay cơ sở dữ liệu riêng biệt cho việc chạy ở dưới.
Cài đặt
Cài đặt Skyvern với local extra, điều này kéo môi trường thực thi tác nhân nhúng vào:
bash
pip install "skyvern[local]"
Cấu hình
Hai khóa được đưa vào môi trường: khóa Scrapeless cho trình duyệt và khóa mô hình cho các cuộc gọi thị giác của tác nhân.
bash
export SCRAPELESS_API_KEY="your_scrapeless_api_key"
export OPENROUTER_API_KEY="your_model_api_key"
Hướng Skyvern đến trình duyệt đám mây và chạy một nhiệm vụ
Skyvern đọc cấu hình trình duyệt và mô hình từ cài đặt, vì vậy hãy đặt chúng trong mã trước khi bạn xây dựng khách hàng: BROWSER_TYPE=cdp-connect cho Skyvern biết để kết nối với một trình duyệt đã tồn tại, BROWSER_REMOTE_DEBUGGING_URL là điểm cuối CDP của Scrapeless, và cài đặt OpenRouter chọn một mô hình có khả năng thị giác. Sau đó, Skyvern.local() chạy tác nhân trong quá trình và run_task nhận mục tiêu như một câu. Kết nối đi qua Giao thức DevTools Chrome qua giao thức WebSocket:
python
import os
from urllib.parse import urlencode
TOKEN = os.environ["SCRAPELESS_API_KEY"]
CDP_URL = "wss://browser.scrapeless.com/api/v2/browser?" + urlencode(
{"token": TOKEN, "sessionTTL": 300, "proxyCountry": "US"})
os.environ.update({
"BROWSER_TYPE": "cdp-connect",
"BROWSER_REMOTE_DEBUGGING_URL": CDP_URL,
"ENABLE_OPENROUTER": "true",
"OPENROUTER_MODEL": "google/gemini-2.5-flash-lite",
"LLM_KEY": "OPENROUTER",
"LLM_CONFIG_SUPPORT_VISION": "true",
})
import asyncio
from skyvern import Skyvern
async def main():
skyvern = Skyvern.local(use_in_memory_db=True)
task = await skyvern.run_task(
prompt="Tìm câu trích dẫn đầu tiên trên trang và báo cáo tên tác giả của nó.",
url="https://quotes.toscrape.com/",
wait_for_completion=True,
max_steps=3,
)
print("trạng thái nhiệm vụ:", task.status)
print("máy chủ:", task.run_request.engine)
asyncio.run(main())
Tác nhân kết nối đến trình duyệt cloud, thực hiện mục tiêu, và hoàn thành:
text
trạng thái nhiệm vụ: đã hoàn thành
máy chủ: skyvern-1.0
Nhận khóa API của bạn trên gói miễn phí: app.scrapeless.com
Những gì tác nhân thực sự đã làm
Sau một dòng trạng thái đó, Skyvern đã chạy vòng lặp của nó với trình duyệt Scrapeless. Nó đã chụp màn hình của trang đã được hiển thị, gửi hình ảnh đến mô hình thị giác với mục tiêu, và mô hình trả về một hành động — ở đây nó nhận ra rằng câu trích dẫn đầu tiên và tác giả của nó đã xuất hiện trên màn hình và đánh dấu mục tiêu hoàn thành. Đối với một nhiệm vụ cần tương tác, cùng một vòng lặp nhấp vào một nút, điền một trường hoặc cuộn, chụp màn hình lần nữa và đọc lại, đến giới hạn max_steps mà bạn cài đặt. Mỗi một trong những hành động đó thực hiện bên trong Chromium trên đám mây, không phải trên máy của bạn, và proxyCountry trong kết nối quyết định nơi lưu lượng truy cập xuất phát.
Một tác nhân hoạt động thay mặt bạn vẫn làm việc bên trong ranh giới của một trang web: chỉ định nó vào các trang công cộng, tuân thủ các điều khoản của trang và các chỉ thị của Giao thức loại trừ Robots, và giữ ngân sách bước ở mức khiêm tốn. Sự phân chia lao động là điểm chính: Skyvern sở hữu các quyết định và Trình duyệt Scraping sở hữu trình duyệt. Đối với một khung tác nhân khác trên cùng một runtime, hướng dẫn về sử dụng Trình duyệt trên Scrapeless bao quát cùng một kết nối từ một tác nhân khác.
Kết luận
Skyvern chuyển đổi một câu thành các hành động trình duyệt, và Trình duyệt Scraping Scrapeless cung cấp cho các hành động một runtime trên đám mây để thực hiện. Đặt BROWSER_TYPE=cdp-connect với điểm cuối Scrapeless CDP, chạy Skyvern.local() với mô hình có khả năng thị giác, và tác nhân điều khiển một Chromium trên đám mây với kết nối dân cư — quá trình trên hoàn thành một mục tiêu từ đầu đến cuối mà không có trình duyệt cục bộ nào. Đọc những gì runtime cung cấp trên trang sản phẩm Trình duyệt Scraping và cân nhắc khối lượng tác nhân, điều này tiêu tốn cả thời gian trình duyệt và token mô hình, so với trang giá cả trước khi bạn mở rộng quy mô.
Tham gia cộng đồng của chúng tôi để nhận kế hoạch miễn phí và trao đổi thông tin với các nhà phát triển khác đang xây dựng các tác nhân trình duyệt: Discord · Telegram.
Câu hỏi thường gặp
Q: Skyvern làm gì mà một tập lệnh không làm?
Skyvern quyết định các hành động thay vì bạn tự mã hóa chúng. Nó chụp màn hình trang, một mô hình thị giác đọc ảnh chụp màn hình theo mục tiêu của bạn, và tác nhân chọn những gì để nhấp, nhập hoặc đọc — do đó nó thích nghi với một bố cục mà nó chưa thấy thay vì làm theo các bộ chọn mà bạn đã mã cứng.
Q: Skyvern kết nối với Trình duyệt Scraping Scrapeless như thế nào?
Thông qua một kết nối CDP. Đặt BROWSER_TYPE=cdp-connect và BROWSER_REMOTE_DEBUGGING_URL thành điểm cuối Scrapeless wss://browser.scrapeless.com/api/v2/browser?token=..., và Skyvern gắn vào Chromium trên đám mây đó thay vì khởi động một trình duyệt cục bộ.
Q: Tôi có cần một cơ sở dữ liệu Postgres hoặc một máy chủ đang chạy không?
Không cần cho điều này. Skyvern.local(use_in_memory_db=True) chạy tác nhân trong quá trình với một cơ sở dữ liệu trên bộ nhớ, đủ để thực hiện một nhiệm vụ. Một máy chủ riêng biệt và Postgres chỉ cần cho dịch vụ Skyvern tự lưu trữ, không phải là quá trình cục bộ được hiển thị ở đây.
Q: Tác nhân sử dụng mô hình nào?
Một mô hình có khả năng thị giác, vì tác nhân lý luận trên các ảnh chụp màn hình. Ví dụ dẫn đến google/gemini-2.5-flash-lite thông qua OpenRouter với LLM_CONFIG_SUPPORT_VISION=true; Skyvern cũng hỗ trợ OpenAI, Anthropic, Gemini, và các nhà cung cấp khác thông qua cùng một cài đặt.
Q: Làm thế nào tôi giữ tác nhân không chạy quá lâu?
Đặt max_steps trên nhiệm vụ. Mỗi bước là một chu kỳ chụp màn hình-lý luận-hành động, do đó một ngân sách nhỏ giới hạn số lượng hành động — và số lượng cuộc gọi mô hình — mà một nhiệm vụ đơn lẻ có thể thực hiện trước khi dừng lại.
Q: Lưu lượng truy cập đến từ đâu?
Từ kết nối xuất phát dân cư của trình duyệt Scrapeless trên đám mây, không phải máy của bạn. Tham số proxyCountry trên URL kết nối gán xuất phát đó cho một quốc gia, điều mà một trang khóa nội dung của nó dựa vào.
Q: Tôi có thể chạy một khung tác nhân khác theo cùng cách không?
Có. Bất kỳ tác nhân nào kết nối với trình duyệt qua CDP đều có thể gắn vào cùng một điểm cuối Scrapeless, vì vậy runtime được chia sẻ giữa các khung trong khi mỗi khung mang lại lý luận riêng của nó.
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.



