我把爬蟲從 Scrapy 改到 XCrawl,省了 300 行代碼
整理版優先睇
XCrawl Skills:為多智能體系統而設嘅標準化網絡爬蟲 API
本文由小智撰寫,佢係一個專注 AI 工具同編程提效嘅作者。文章提到,好多團隊喺做 AI 應用、數據分析嘅時候,都會遇到一個頭痛問題:點樣高效咁從互聯網抓數據?傳統爬蟲方案有幾個痛點:各種庫用法唔統一,多智能體系統入面唔同 Agent 要一致咁調用爬蟲功能好難,而且好多開源爬蟲缺少生產級功能,例如錯誤處理、異步支援等。XCrawl Skills 就係為咗解決呢個問題,透過標準化嘅技能定義同 REST API 設計,為現代 AI 系統建立一套統一嘅網絡數據採集基礎設施。
XCrawl Skills 提供咗五個核心技能:xcrawl(基礎單頁提取)、xcrawl-scrape(單頁面爬蟲,支援同步/異步)、xcrawl-map(網站 URL 地圖發現)、xcrawl-crawl(大規模網站爬蟲)、xcrawl-search(搜索驅動嘅 URL 發現)。每個技能都有清晰嘅輸入輸出約定,而且完全獨立於特定運行時,任何支援 HTTP 嘅環境都用得。文章仲詳細講解咗快速開始步驟、真實場景應用(例如競爭對手價格監測、行業新聞聚合、技術文檔本地化),同埋與 Scrapy、Cheerio、Puppeteer 等工具嘅對比。
總括嚟講,XCrawl Skills 嘅設計目標係為多智能體系統提供統一接口,降低集成成本。佢嘅優勢包括學習曲線低、跨語言、生產就緒、內置反爬措施、雲端託管;劣勢就係超出免費額度後要付費、完全依賴第三方服務、定製能力…
- XCrawl Skills 用 API-First 方式標準化爬蟲能力,解決多智能體系統集成難題。
- 五個核心技能(xcrawl、scrape、map、crawl、search)覆蓋從單頁提取到全站爬取嘅場景。
- 相比 Scrapy 學習曲線低、跨語言;相比 Cheerio 功能完整;相比 Puppeteer 資源佔用低。
- 統一 API 合約設計,讓 LangChain、CrewAI 等框架可以一致使用,降低整合成本。
- 建議先註冊獲取 API Key,從 xcrawl-map 瞭解網站結構,再按需用 scrape 或 crawl 執行爬取。
XCrawl 項目首頁
項目官方網站
技術文檔
詳細 API 文檔同示例
官方倉庫
GitHub 開源項目
控制面板
API Key 管理同使用量監控
點解需要 XCrawl Skills?傳統爬蟲嘅痛點
而家做 AI 應用、數據分析嘅團隊,成日都要煩惱點樣高效抓取網絡數據。如果每個智能體、每個數據流程都要自己寫爬蟲邏輯,咁就真係好離譜。
- 1 各種爬蟲庫用法唔統一,集成時要寫好多適配代碼
- 2 多智能體系統入面,唔同 Agent 好難用一致嘅方式調用爬蟲
- 3 大多數爬蟲工具係圍繞特定語言或框架設計,通用性差
- 4 好多開源爬蟲缺少生產級功能,好似錯誤處理、異步支援、結果管理等,都要自己搞。
呢個項目就係想透過標準化嘅技能定義同 REST API 設計,為現代 AI 系統建立統一嘅網絡數據採集基礎設施。
文章仲提到,GitHub Trending Skill 幫手發現咗呢個項目,作者小智認為係個好有意思嘅思路。
五大核心技能詳解
XCrawl Skills 提供咗五個生產級技能,涵蓋網絡數據工作流嘅主要場景。
- 1 xcrawl 基礎技能:最簡單直接,適合快速從單個 URL 提取數據,支援 Markdown、HTML、JSON 等格式,仲可以透過自然語言指示提取邏輯。
- 2 xcrawl-scrape 單頁面爬蟲:提供更強嘅細節控制,有同步同異步兩種模式,支援 JSON Schema 確保輸出結構,仲有詳細嘅參數控制(超時、重試等)。
- 3 xcrawl-map 網站 URL 地圖爬蟲:自動發現網站所有可訪問嘅 URL,支援正則過濾、子域名控制、URL 數量限制,適合爬取前分析網站結構。
- 4 xcrawl-crawl 大規模網站爬蟲:最強大嘅技能,可以全站爬取或基於規則限制範圍,支援 JavaScript 渲染、深度控制、完整異步任務管理,輸出格式包括 Markdown、Links、JSON、PDF。
- 5 xcrawl-search 搜索驅動嘅 URL 發現:支援關鍵詞搜索、地理位置過濾、語言控制、結果排序同分頁,適合行業新聞監測、競爭對手跟蹤等場景。
每個技能都有詳細嘅請求和響應文檔,仲提供 cURL 同 Node.js 兩種代碼示例,方便唔同環境集成。
快速開始同真實場景應用
要用 XCrawl Skills,首先要去 https://dash.xcrawl.com/ 註冊賬户,激活免費嘅 1000 積分計劃。然後建立本地配置文件 ~/.xcrawl/config.json,將 API Key 放喺入面,咁樣就可以避免暴露喺環境變量。
{
"XCRAWL_API_KEY": "your_api_key_here"
}
選技能好簡單:想快速提取單頁用 xcrawl 或 xcrawl-scrape;想了解網站結構用 xcrawl-map;爬成個網站用 xcrawl-crawl;基於搜索發現信息用 xcrawl-search。
文章介紹咗三個真實場景:競爭對手產品價格監測、行業新聞聚合平台、技術文檔本地化知識庫。每個場景都附有代碼框架,例如價格監測嗰個:先用 map 發現所有產品 URL,然後用 scrape 嘅異步模式定期抓取,最後定時輪詢結果更新數據庫。
// 1. 發現所有產品 URL
const mapResult = await fetch('https://run.xcrawl.com/v1/map', {
method: 'POST',
headers: { 'Authorization': `Bearer ${API_KEY}` },
body: JSON.stringify({
url: 'https://shop.example.com',
filter: '/product/.*',
limit: 5000
})
});
// 2. 批量爬取產品頁面
const productUrls = mapResult.urls;
for (const url of productUrls) {
const scrapeResult = await fetch('https://run.xcrawl.com/v1/scrape', {
method: 'POST',
headers: { 'Authorization': `Bearer ${API_KEY}` },
body: JSON.stringify({
url: url,
mode: 'async',
json: { prompt: 'Extract price, stock, rating' }
})
});
storeTaskId(scrapeResult.scrape_id);
}
// 3. 定時輪詢結果並更新數據庫
setInterval(async () => {
for (const taskId of storedTaskIds) {
const result = await fetch(`https://run.xcrawl.com/v1/scrape/${taskId}`, {
headers: { 'Authorization': `Bearer ${API_KEY}` }
});
updateDatabase(result.data);
}
}, 300000);
與其他工具對比:邊個更強?
文章將 XCrawl Skills 同三個主流工具做咗詳細對比,等你可以快速瞭解佢嘅定位。
同 Scrapy 對比:XCrawl 學習曲線低(REST API),支援多語言,內置異步支援,雲端自動擴展,初始配置簡單(只需 API Key),而且係託管服務;Scrapy 就需要自己部署集羣,學習曲線中等,僅支援 Python。
同 Cheerio 對比:XCrawl 功能完整,有 JavaScript 渲染支援、反爬處理、雲端分佈式性能;Cheerio 只係 HTML 解析庫,功能有限。
同 Puppeteer 對比:XCrawl 資源佔用低(無需啓動瀏覽器),適合通用網頁爬取;Puppeteer 適合 JavaScript 重型網站,但資源佔用高,API 相對複雜。
成本方面,XCrawl 按使用量計費,有免費額度;自身維護嘅工具就冇呢個費用,但需要自己承擔服務器成本同維護精力。
適用人羣同限制
XCrawl Skills 特別推薦畀 AI/LLM 應用開發者、數據分析團隊、企業自動化工程師、學術研究人員同 多智能體框架使用者。
不過佢都有啲限制:超出免費額度後要付費,對大規模爬蟲可能成本較高;完全依賴第三方服務,網絡唔得嘅時候冇得用;定製能力唔及自建爬蟲;數據經過第三方,敏感數據可能唔適用。
總結嚟講,XCrawl Skills 係個設計精良、文檔完善嘅開源項目,透過標準化技能定義同 REST API,為現代多智能體系統提供咗完整嘅網絡數據採集方案。如果你需要為智能體提供網絡信息獲取能力,呢個值得一試。
大家好,我係小智,專注 AI 工具、AI 智能體同埋程式編寫效率提升
GitHub Trending Skill 真係正,自從裝咗呢個技能之後,每日經 openclaw 發送啲好熱門星標高嘅開源項目畀我,其中有個好得意嘅項目叫 XCrawl Skills。講真,好多人都以為網絡爬蟲就係幾個 Python 腳本加一堆依賴,其實唔係咁簡單。呢個項目用 API-First 嘅方式,將爬蟲能力標準化,為多智能體運行時提供咗一套生產級嘅網絡數據採集方案。我哋唔講廢話,直接上乾貨。
呢個項目到底想解決咩問題
而家做 AI 應用、數據分析、自動化嘅團隊都面對一個共同嘅頭痛問題:點樣有效率噉從互聯網上拎數據。你諗下,如果每個智能體、每個數據流程都要自己寫爬蟲邏輯,咁就好離譜啦。
傳統爬蟲方案嘅主要痛點:
1. 各種爬蟲庫嘅用法五花八門,冇統一標準,集成嘅時候要寫一堆適配代碼 2. 多智能體系統裏面,唔同嘅 Agent 要用一致嘅方式嚟呼叫爬蟲功能,現有方案好難做到 3. 多數爬蟲工具係圍繞某個程式語言或者框架設計,通用性唔夠 4. 好多開源爬蟲項目欠缺生產級功能,好似錯誤處理、異步支援、結果管理呢啲都要自己寫
XCrawl Skills 想做嘅嘢就係:透過標準化嘅技能定義同 REST API 設計,為現代 AI 系統建立一套統一嘅網絡數據採集基礎設施。你話,呢個係咪一個好好用嘅思路呢?
核心特點:
- • 將爬蟲功能模塊化成明確定義嘅「技能」,每個技能都有清晰嘅輸入輸出約定
- • Runtime-Agnostic 設計,完全獨立於某個特定嘅運行時,基於標準 HTTP API,任何支援 HTTP 嘅環境都用得
- • 詳細嘅請求和響應文檔,包含完整嘅參數說明同代碼示例
- • 提供 cURL 同 Node.js 兩種形式嘅代碼示例,方便唔同環境集成
五大核心技能詳解
XCrawl Skills 提供咗 5 個生產級嘅技能定義,涵蓋網絡數據工作流嘅主要場景:
1. xcrawl 基礎技能
呢個係最簡單直接嘅技能,適合需要快速從單一個 URL 提取數據嘅場景。
特點:
- • 直接 API 查詢,配置簡單
- • 單頁面快速提取
- • 支援 Markdown、HTML、JSON 等多種輸出格式
- • 透過自然語言指示嚟指定提取邏輯
幾時用:快速拎網頁內容、簡單嘅資訊提取、產品原型驗證
2. xcrawl-scrape 單頁面爬蟲
呢個技能提供嘅細節控制同結構化輸出能力比基礎版本強唔少:
- • 同步同異步兩種執行模式
- • 支援 JSON 提取同基於提示詞嘅智能提取
- • JSON Schema 支援,確保輸出結構符合預期
- • 詳細嘅參數控制,例如超時、重試等等
主要功能:
- • Sync 模式:即時返回結果,適合即時應用
- • Async 模式:啟動任務後即刻返回 Task ID,之後可以查詢結果
同步模式嘅請求示例:
curl -X POST "https://run.xcrawl.com/v1/scrape" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"url": "https://example.com/product",
"mode": "sync",
"output": {"formats": ["markdown", "json"]},
"json": {"prompt": "Extract product title, price, and reviews."}
}'異步模式嘅完整流程:
# 第一步:啓動異步任務
curl -X POST "https://run.xcrawl.com/v1/scrape" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"url": "https://example.com/article",
"mode": "async",
"output": {"formats": ["markdown", "json"]},
"json": {"prompt": "Extract article content, author, and publish date"}
}'
# 第二步:用返回的 scrape_id 查詢結果
curl -X GET "https://run.xcrawl.com/v1/scrape/SCRAPE_ID" \
-H "Authorization: Bearer YOUR_API_KEY"3. xcrawl-map 網站 URL 地圖
爬大規模網站之前,通常要先理清網站嘅 URL 結構。xcrawl-map 就係做呢樣嘢:
- • 自動發現網站所有可訪問嘅 URL
- • 基於正則表達式嘅靈活過濾
- • 支援子域名嘅包含或排除
- • URL 查詢參數嘅處理配置
- • URL 數量限制同範圍估算
關鍵參數說明:
url | ||
filter | ||
limit | ||
include_subdomains | ||
ignore_query_parameters |
適用場景:爬取前嘅網站結構分析、確定爬蟲範圍同限制、發現隱藏嘅 URL 路徑
請求示例:
curl -X POST "https://run.xcrawl.com/v1/map" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"url": "https://docs.example.com",
"filter": "/docs/.*",
"limit": 2000,
"include_subdomains": false,
"ignore_query_parameters": true
}'4. xcrawl-crawl 大規模網站爬蟲
呢個係最強大嘅技能,用嚟爬取整個網站或者其主要部分:
- • 全站爬取或基於規則嘅範圍限制
- • 深度控制,支援基於深度嘅爬取策略
- • URL 數量限制
- • JavaScript 渲染支援
- • 代理同請求配置
- • 完整嘅異步任務管理
爬蟲配置參數:
limit | |
max_depth | |
include | |
exclude |
輸出格式:支援 Markdown(文本化內容)、Links(所有連結)、JSON(結構化數據)、PDF(文檔格式)
工作流程:啟動爬取請求 → 獲取 Crawl ID → 輪詢查詢狀態 → 獲取完整結果
請求示例:
# 第一步:啓動爬蟲
curl -X POST "https://run.xcrawl.com/v1/crawl" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"url": "https://example.com",
"crawler": {
"limit": 500,
"max_depth": 3,
"include": ["/docs/.*"],
"exclude": ["/blog/.*"]
},
"output": {"formats": ["markdown", "links", "json"]}
}'
# 第二步:檢查爬蟲狀態和結果
curl -X GET "https://run.xcrawl.com/v1/crawl/CRAWL_ID" \
-H "Authorization: Bearer YOUR_API_KEY"5. xcrawl-search 搜索驅動嘅 URL 發現
呢個技能為基於搜索嘅數據收集提供咗強大支援:
- • 關鍵詞搜索
- • 地理位置過濾
- • 語言選項控制
- • 結果排序同分頁
- • 多來源聚合
主要特性:支援國際化搜索、可指定返回結果數量、支援多種搜索算子
用得上呢個技能嘅場景:行業新聞監測、競爭對手跟蹤、特定話題嘅資訊收集、市場趨勢分析
快速開始,三步搞掂
第一步:準備功夫
用 XCrawl Skills 之前,你要做呢啲準備:
1. 獲取 XCrawl API Key
訪問 https://dash.xcrawl.com/ 註冊賬户,啟動免費嘅 1000 積分計劃2. 準備運行環境
需要 curl 或 node 等運行時環境,以及對呢個項目倉庫嘅訪問權限
第二步:本地配置
創建本地配置文件 ~/.xcrawl/config.json:
{
"XCRAWL_API_KEY": "your_api_key_here"
}所有技能都會從呢個本地文件讀取 API Key,而唔係依賴環境變量。咁做有幾個好處:API Key 唔會暴露喺環境變量裏面、跨平台嘅一致性更好、多用戶管理亦都更方便。
第三步:揀啱嘅技能
- • 想快速提取單一頁面?用
xcrawl或xcrawl-scrape - • 想了解網站結構?用
xcrawl-map - • 需要爬取整個網站?用
xcrawl-crawl - • 想基於搜索發現資訊?用
xcrawl-search
第四步:執行請求
直接用 SKILL.md 入面嘅示例代碼,根據你嘅業務場景調整請求內容就得。
三個真實場景嘅應用
場景一:競爭對手嘅產品價格監測
想實時監測競爭對手嘅產品價格變動,可以咁做:
1. 先用 xcrawl-map發現所有產品頁面 URL2. 用 xcrawl-scrape嘅異步模式定期抓取每個產品頁面3. 提取價格、庫存、評價等關鍵數據,保存到數據庫 4. 實現價格變動告警
代碼框架:
// 1. 發現所有產品 URL
const mapResult = await fetch('https://run.xcrawl.com/v1/map', {
method: 'POST',
headers: { 'Authorization': `Bearer ${API_KEY}` },
body: JSON.stringify({
url: 'https://shop.example.com',
filter: '/product/.*',
limit: 5000
})
});
// 2. 批量爬取產品頁面
const productUrls = mapResult.urls;
for (const url of productUrls) {
const scrapeResult = await fetch('https://run.xcrawl.com/v1/scrape', {
method: 'POST',
headers: { 'Authorization': `Bearer ${API_KEY}` },
body: JSON.stringify({
url: url,
mode: 'async',
json: { prompt: 'Extract price, stock, rating' }
})
});
// 3. 存儲任務 ID 用於後續查詢
storeTaskId(scrapeResult.scrape_id);
}
// 4. 定時輪詢結果並更新數據庫
setInterval(async () => {
for (const taskId of storedTaskIds) {
const result = await fetch(`https://run.xcrawl.com/v1/scrape/${taskId}`, {
headers: { 'Authorization': `Bearer ${API_KEY}` }
});
updateDatabase(result.data);
}
}, 300000);場景二:行業新聞聚合平台
想自動收集並聚合行業內嘅最新新聞,可以咁做:
1. 用 xcrawl-search發現同行業相關嘅新聞2. 用 xcrawl-scrape抓取完整文章內容3. 用自然語言處理進行分類同總結 4. 發佈到內部平台
工作流:
Search (發現新聞)
↓
Scrape (獲取完整內容)
↓
Extract (結構化提取)
↓
NLP Pipeline (分類、標籤、總結)
↓
Publish (發佈到聚合平台)場景三:技術文檔嘅本地化知識庫
將分散嘅技術文檔整合成本地知識庫,步驟如下:
1. 用 xcrawl-map發現所有文檔 URL2. 用 xcrawl-crawl批量爬取整個文檔網站3. 轉換為 Markdown 格式 4. 上傳到本地知識庫系統
實現細節:
# 1. 發現所有文檔頁面
curl -X POST "https://run.xcrawl.com/v1/map" \
-H "Authorization: Bearer ${API_KEY}" \
-d '{
"url": "https://docs.example.com",
"filter": "/docs/v1/.*",
"limit": 10000,
"include_subdomains": false
}'
# 2. 批量爬取文檔網站
curl -X POST "https://run.xcrawl.com/v1/crawl" \
-H "Authorization: Bearer ${API_KEY}" \
-d '{
"url": "https://docs.example.com",
"crawler": {
"limit": 5000,
"max_depth": 4,
"include": ["/docs/.*"]
},
"output": {"formats": ["markdown"]}
}'
# 3. 輪詢獲取結果
curl -X GET "https://run.xcrawl.com/v1/crawl/${CRAWL_ID}" \
-H "Authorization: Bearer ${API_KEY}"同其他工具比較,邊個更勁
同 Scrapy 比較
Scrapy 係 Python 嘅爬蟲框架,好多人用。但係比較嚇你就知道分別:
同 Cheerio 比較
Cheerio 係 Node.js 嘅 HTML 解析庫,只係解析工具,功能有限:
同 Puppeteer 比較
Puppeteer 係瀏覽器自動化工具,適合複雜嘅交互場景:
為多智能體系統設計嘅標準化接口
XCrawl Skills 嘅核心設計目標之一就係支援多智能體系統。項目定義咗統一嘅交互合約,令到唔同嘅智能體框架都可以一致嘅方式使用。
輸入規範化
每個技能嘅輸入都跟以下格式:
{
"goal": "Extract product information from this page",
"inputs": {
"url": "https://example.com/product/123",
"mode": "sync"
},
"constraints": {
"max_tokens": 2000,
"timeout_ms": 30000
},
"credentials_ref": "xcrawl_api_key",
"runtime_context": {
"agent_id": "agent_1",
"session_id": "session_123"
}
}輸出規範化
所有響應都按以下格式返回:
{
"status": "success|pending|error",
"request_payload": {},
"raw_response": {},
"task_ids": ["scrape_id_1", "scrape_id_2"],
"error": null
}呢種設計令到 LangChain、CrewAI、AutoGen 呢啲智能體框架都可以用統一嘅方式集成 XCrawl 功能。
技術特點同最佳實踐
1. 純 API-First 架構
所有功能都透過 REST API 提供,冇複雜嘅依賴安裝:
- • 基礎 URL
https://run.xcrawl.com - • 用 Bearer Token 認證
- • 完全無狀態嘅 HTTP 操作
2. 異步工作流支援
耗時操作都採用啟動 + 輪詢嘅模式:
啓動請求 → 獲取任務 ID → 輪詢查詢 → 獲取結果咁樣嘅好處係唔會阻塞客戶端、支援超長時間嘅爬取任務、容易實現重試同恢復機制。
3. 靈活嘅輸出格式
每個操作都支援多種輸出格式,滿足唔同場景:
- • Markdown 方便進一步處理,易讀易解析
- • HTML 原始網頁結構保留完整
- • Links URL 連結列表
- • JSON 結構化數據,可指定 Schema
4. 反爬蟲對抗嘅多重措施
XCrawl 喺後端實現咗多項對抗措施:
- • User-Agent 輪換
- • IP 池管理
- • 請求間隔控制
- • Cookie 同 Session 管理
- • JavaScript 渲染支援,處理動態內容
5. 成本控制同優化
- • 免費 1000 積分計劃,適合小型項目測試
- • 按 API 調用次數計費,無伺服器維護成本
- • 自動化嘅雲端基礎設施,唔使自己起爬蟲集羣
最佳實踐指南
漸進式爬取策略
// 第 1 步先 map,瞭解範圍
const mapResult = await callMapAPI(domain);
// 第 2 步單個測試抓取
const testResult = await callScrapeAPI(sample_url);
// 第 3 步確認格式後,批量爬取
const crawlResult = await callCrawlAPI(domain, config);錯誤處理同重試機制
async function robustScrape(url, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
try {
const result = await callScrapeAPI(url);
if (result.status === 'success') return result;
// 任務未完成,繼續輪詢
if (result.status === 'pending') {
await sleep(5000 * Math.pow(2, i));
continue;
}
} catch (error) {
if (i === maxRetries - 1) throw error;
await sleep(1000 * Math.pow(2, i));
}
}
}批量操作嘅併發控制
// 使用隊列限制併發數,避免 API 限流
const queue = new PQueue({ concurrency: 5 });
for (const url of urls) {
queue.add(() => callScrapeAPI(url));
}
await queue.onIdle();成本監控同管理
// 跟蹤 API 使用量,避免意外超支
const usage = {
scrape_calls: 0,
crawl_calls: 0,
map_calls: 0,
search_calls: 0
};
// 定期上報到監控系統
function trackAPICall(operation) {
usage[operation]++;
if (shouldReport(usage)) {
reportToMonitoring(usage);
}
}呢個項目有咩優劣勢
優勢所在
1. 標準化同一致性 為多智能體系統建立咗統一嘅網絡爬蟲接口標準 2. 生產就緒 完整嘅錯誤處理、異步支援、結果輪詢等生產級功能都有 3. 容易集成 純 REST API,任何語言同框架都用得 4. 文檔完善 詳細嘅參數說明、cURL 同 Node.js 示例 5. 雲端託管 唔使自己維護爬蟲基礎設施,自動擴展 6. 反爬蟲對抗 內置多項對抗措施,提高成功率
劣勢或限制
1. 成本考量 超出免費額度後要畀錢,對大規模爬蟲項目可能成本較高 2. API 依賴 完全依賴第三方服務,網絡唔掂時就冇得用 3. 定製能力 相比自己起爬蟲,定製化程度較低 4. 私隱考慮 數據會經過第三方服務,對敏感數據可能唔啱用
適合邊啲人用,唔適合邊啲場景
強烈推薦畀以下人士
1. AI/LLM 應用開發者 需要為智能體提供網絡資訊獲取能力嘅 2. 數據分析團隊 需要快速構建數據收集管道嘅 3. 企業自動化工程師 需要集成網絡爬蟲到業務流程中嘅 4. 學術研究人員 需要採集網絡數據進行分析嘅 5. 多智能體框架使用者 想要標準化 API 接口嘅
可能唔太適合嘅場景
1. 需要大規模爬蟲但成本敏感嘅項目 2. 需要爬取受嚴格反爬保護嘅網站 3. 對數據私隱有極高要求嘅應用 4. 需要完全自主控制爬蟲行為嘅情況
寫到最後
一句話講曬,XCrawl Skills 係一個設計精良、文檔完善嘅開源項目。透過標準化嘅技能定義同 REST API 設計,為現代多智能體系統提供咗一套完整嘅網絡數據採集解決方案。
參考資源:
- • 項目首頁 https://www.xcrawl.com/
- • 技術文檔 https://docs.xcrawl.com/
- • 官方倉庫 https://github.com/xcrawl-api/xcrawl-skills
- • 控制面板 https://dash.xcrawl.com/
如果呢篇文章幫到你,亦請幫忙點個讚👍 + 在看啦!❤️關注小智AI指南公眾號,AI 路上唔會迷路
大家好,我是小智,專注 AI 工具,AI 智能體和編程提效
GitHub Trending Skill就是好啊,自從安裝了這個技能後,每天通過openclaw發送我一些非常熱門星標高的開源項目,其中有這麼一個很意思的項目叫 XCrawl Skills。說起來,很多人以為網絡爬蟲就是幾個 Python 腳本加一堆依賴,其實不然。這個項目用 API-First 的方式,把爬蟲能力標準化了,給多智能體運行時提供了一套生產級的網絡數據採集方案。咱們不廢話,直接上乾貨。
這個項目到底在解決啥問題
現在做 AI 應用、數據分析、自動化的團隊都面臨一個共同的頭疼事兒:怎樣高效地從互聯網上抓取數據。你想想,要是每個智能體、每個數據流程都得自己寫爬蟲邏輯,這就很離譜了。
傳統爬蟲方案的主要痛點:
1. 各種爬蟲庫用法五花八門,沒有統一標準,集成時得寫一堆適配代碼 2. 多智能體系統裏,不同的 Agent 得用一致的方式調用爬蟲功能,現有方案很難做到 3. 大多數爬蟲工具是圍繞某個編程語言或框架設計的,通用性不夠 4. 很多開源爬蟲項目缺少生產級的功能,什麼錯誤處理、異步支持、結果管理都得自己寫
XCrawl Skills 想幹的事兒就是:通過標準化的技能定義和 REST API 設計,為現代 AI 系統建立一套統一的網絡數據採集基礎設施。你說,這是個非常好用的思路吧。
核心特點:
- • 把爬蟲功能模塊化成明確定義的"技能",每個技能都有清晰的輸入輸出約定
- • Runtime-Agnostic 設計,完全獨立於某個特定的運行時,基於標準 HTTP API,任何支持 HTTP 的環境都能用
- • 詳細的請求和響應文檔,包含完整的參數說明和代碼示例
- • 提供 cURL 和 Node.js 兩種形式的代碼示例,方便不同環境集成
五大核心技能詳解
XCrawl Skills 提供了 5 個生產級的技能定義,涵蓋了網絡數據工作流的主要場景:
1. xcrawl 基礎技能
這是最簡單直接的技能,適合需要快速從單個 URL 提取數據的場景。
特點:
- • 直接 API 查詢,配置簡單
- • 單頁面快速提取
- • 支持 Markdown、HTML、JSON 等多種輸出格式
- • 通過自然語言指示來指定提取邏輯
什麼時候用:快速獲取網頁內容、簡單的信息提取、產品原型驗證
2. xcrawl-scrape 單頁面爬蟲
這個技能提供的細節控制和結構化輸出能力比基礎版本要強不少:
- • 同步和異步兩種執行模式
- • 支持 JSON 提取和基於提示詞的智能提取
- • JSON Schema 支持,確保輸出結構符合預期
- • 詳細的參數控制,比如超時、重試等等
主要功能:
- • Sync 模式:實時返回結果,適合實時應用
- • Async 模式:啓動任務後立即返回 Task ID,之後可以查詢結果
同步模式的請求示例:
curl -X POST "https://run.xcrawl.com/v1/scrape" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"url": "https://example.com/product",
"mode": "sync",
"output": {"formats": ["markdown", "json"]},
"json": {"prompt": "Extract product title, price, and reviews."}
}'異步模式的完整流程:
# 第一步:啓動異步任務
curl -X POST "https://run.xcrawl.com/v1/scrape" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"url": "https://example.com/article",
"mode": "async",
"output": {"formats": ["markdown", "json"]},
"json": {"prompt": "Extract article content, author, and publish date"}
}'
# 第二步:用返回的 scrape_id 查詢結果
curl -X GET "https://run.xcrawl.com/v1/scrape/SCRAPE_ID" \
-H "Authorization: Bearer YOUR_API_KEY"3. xcrawl-map 網站 URL 地圖
爬蟲大規模網站前,通常得先理清網站的 URL 結構。xcrawl-map 就是幹這個的:
- • 自動發現網站所有可訪問的 URL
- • 基於正則表達式的靈活過濾
- • 支持子域名的包含或排除
- • URL 查詢參數的處理配置
- • URL 數量限制和範圍估算
關鍵參數說明:
url | ||
filter | ||
limit | ||
include_subdomains | ||
ignore_query_parameters |
適用場景:爬取前的網站結構分析、確定爬蟲範圍和限制、發現隱藏的 URL 路徑
請求示例:
curl -X POST "https://run.xcrawl.com/v1/map" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"url": "https://docs.example.com",
"filter": "/docs/.*",
"limit": 2000,
"include_subdomains": false,
"ignore_query_parameters": true
}'4. xcrawl-crawl 大規模網站爬蟲
這是最強大的技能,用於爬取整個網站或其主要部分:
- • 全站爬取或基於規則的範圍限制
- • 深度控制,支持基於深度的爬取策略
- • URL 數量限制
- • JavaScript 渲染支持
- • 代理和請求配置
- • 完整的異步任務管理
爬蟲配置參數:
limit | |
max_depth | |
include | |
exclude |
輸出格式:支持 Markdown(文本化內容)、Links(所有連結)、JSON(結構化數據)、PDF(文檔格式)
工作流程:啓動爬取請求 → 獲取 Crawl ID → 輪詢查詢狀態 → 獲取完整結果
請求示例:
# 第一步:啓動爬蟲
curl -X POST "https://run.xcrawl.com/v1/crawl" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"url": "https://example.com",
"crawler": {
"limit": 500,
"max_depth": 3,
"include": ["/docs/.*"],
"exclude": ["/blog/.*"]
},
"output": {"formats": ["markdown", "links", "json"]}
}'
# 第二步:檢查爬蟲狀態和結果
curl -X GET "https://run.xcrawl.com/v1/crawl/CRAWL_ID" \
-H "Authorization: Bearer YOUR_API_KEY"5. xcrawl-search 搜索驅動的 URL 發現
這個技能為基於搜索的數據收集提供了強大支持:
- • 關鍵詞搜索
- • 地理位置過濾
- • 語言選項控制
- • 結果排序和分頁
- • 多來源聚合
主要特性:支持國際化搜索、可指定返回結果數量、支持多種搜索算子
用上這個技能的場景:行業新聞監測、競爭對手跟蹤、特定話題的信息收集、市場趨勢分析
快速開始,三步到位
第一步:準備工作
在用 XCrawl Skills 前,你得做這些準備:
1. 獲取 XCrawl API Key
訪問 https://dash.xcrawl.com/ 註冊賬户,激活免費的 1000 積分計劃2. 準備運行環境
需要 curl 或 node 等運行時環境,以及對這個項目倉庫的訪問權限
第二步:本地配置
創建本地配置文件 ~/.xcrawl/config.json:
{
"XCRAWL_API_KEY": "your_api_key_here"
}所有技能都會從這個本地文件讀取 API Key,而不是依賴環境變量。這樣做有幾個好處:API Key 不會暴露在環境變量裏、跨平台的一致性更好、多用戶管理也更方便。
第三步:選擇合適的技能
- • 要快速提取單個頁面?用
xcrawl或xcrawl-scrape - • 想了解網站結構?用
xcrawl-map - • 需要爬取整個網站?用
xcrawl-crawl - • 想基於搜索發現信息?用
xcrawl-search
第四步:執行請求
直接用 SKILL.md 中的示例代碼,根據你的業務場景調整請求內容就行。
三個真實場景的應用
場景一:競爭對手的產品價格監測
想實時監測競爭對手的產品價格變動,這樣做就可以:
1. 先用 xcrawl-map發現所有產品頁面 URL2. 用 xcrawl-scrape的異步模式定期抓取每個產品頁面3. 提取價格、庫存、評價等關鍵數據,保存到數據庫 4. 實現價格變動告警
代碼框架:
// 1. 發現所有產品 URL
const mapResult = await fetch('https://run.xcrawl.com/v1/map', {
method: 'POST',
headers: { 'Authorization': `Bearer ${API_KEY}` },
body: JSON.stringify({
url: 'https://shop.example.com',
filter: '/product/.*',
limit: 5000
})
});
// 2. 批量爬取產品頁面
const productUrls = mapResult.urls;
for (const url of productUrls) {
const scrapeResult = await fetch('https://run.xcrawl.com/v1/scrape', {
method: 'POST',
headers: { 'Authorization': `Bearer ${API_KEY}` },
body: JSON.stringify({
url: url,
mode: 'async',
json: { prompt: 'Extract price, stock, rating' }
})
});
// 3. 存儲任務 ID 用於後續查詢
storeTaskId(scrapeResult.scrape_id);
}
// 4. 定時輪詢結果並更新數據庫
setInterval(async () => {
for (const taskId of storedTaskIds) {
const result = await fetch(`https://run.xcrawl.com/v1/scrape/${taskId}`, {
headers: { 'Authorization': `Bearer ${API_KEY}` }
});
updateDatabase(result.data);
}
}, 300000);場景二:行業新聞聚合平台
想自動收集並聚合行業內的最新新聞,可以這樣做:
1. 用 xcrawl-search發現與行業相關的新聞2. 用 xcrawl-scrape抓取完整文章內容3. 用自然語言處理進行分類和總結 4. 發佈到內部平台
工作流:
Search (發現新聞)
↓
Scrape (獲取完整內容)
↓
Extract (結構化提取)
↓
NLP Pipeline (分類、標籤、總結)
↓
Publish (發佈到聚合平台)場景三:技術文檔的本地化知識庫
把分散的技術文檔整合成本地知識庫,步驟是:
1. 用 xcrawl-map發現所有文檔 URL2. 用 xcrawl-crawl批量爬取整個文檔網站3. 轉換為 Markdown 格式 4. 上傳到本地知識庫系統
實現細節:
# 1. 發現所有文檔頁面
curl -X POST "https://run.xcrawl.com/v1/map" \
-H "Authorization: Bearer ${API_KEY}" \
-d '{
"url": "https://docs.example.com",
"filter": "/docs/v1/.*",
"limit": 10000,
"include_subdomains": false
}'
# 2. 批量爬取文檔網站
curl -X POST "https://run.xcrawl.com/v1/crawl" \
-H "Authorization: Bearer ${API_KEY}" \
-d '{
"url": "https://docs.example.com",
"crawler": {
"limit": 5000,
"max_depth": 4,
"include": ["/docs/.*"]
},
"output": {"formats": ["markdown"]}
}'
# 3. 輪詢獲取結果
curl -X GET "https://run.xcrawl.com/v1/crawl/${CRAWL_ID}" \
-H "Authorization: Bearer ${API_KEY}"和其他工具對比,誰更強
和 Scrapy 對比
Scrapy 是 Python 的爬蟲框架,用的人很多。但是對比一下你就知道差別了:
和 Cheerio 對比
Cheerio 是 Node.js 的 HTML 解析庫,只是解析工具,功能有限:
和 Puppeteer 對比
Puppeteer 是瀏覽器自動化工具,適合複雜的交互場景:
為多智能體系統設計的標準化接口
XCrawl Skills 的核心設計目標之一就是支持多智能體系統。項目定義了統一的交互合約,這樣不同的智能體框架都能以一致的方式使用。
輸入規範化
每個技能的輸入都遵循這樣的格式:
{
"goal": "Extract product information from this page",
"inputs": {
"url": "https://example.com/product/123",
"mode": "sync"
},
"constraints": {
"max_tokens": 2000,
"timeout_ms": 30000
},
"credentials_ref": "xcrawl_api_key",
"runtime_context": {
"agent_id": "agent_1",
"session_id": "session_123"
}
}輸出規範化
所有響應都按這樣的格式返回:
{
"status": "success|pending|error",
"request_payload": {},
"raw_response": {},
"task_ids": ["scrape_id_1", "scrape_id_2"],
"error": null
}這樣的設計讓 LangChain、CrewAI、AutoGen 這些智能體框架都能以統一的方式集成 XCrawl 功能。
技術特點和最佳實踐
1. 純 API-First 架構
所有功能都通過 REST API 提供,沒有複雜的依賴安裝:
- • 基礎 URL
https://run.xcrawl.com - • 用 Bearer Token 認證
- • 完全無狀態的 HTTP 操作
2. 異步工作流支持
耗時操作都採用啓動 + 輪詢的模式:
啓動請求 → 獲取任務 ID → 輪詢查詢 → 獲取結果這樣的優點是不會阻塞客戶端、支持超長時間的爬取任務、易於實現重試和恢復機制。
3. 靈活的輸出格式
每個操作都支持多種輸出格式,滿足不同場景:
- • Markdown 便於進一步處理,易讀易解析
- • HTML 原始網頁結構保留完整
- • Links URL 連結列表
- • JSON 結構化數據,可指定 Schema
4. 反爬蟲對抗的多重措施
XCrawl 在後端實現了多項對抗措施:
- • User-Agent 輪換
- • IP 池管理
- • 請求間隔控制
- • Cookie 和 Session 管理
- • JavaScript 渲染支持,處理動態內容
5. 成本控制和優化
- • 免費 1000 積分計劃,適合小型項目測試
- • 按 API 調用次數計費,無服務器維護成本
- • 自動化的雲端基礎設施,不需要自建爬蟲集羣
最佳實踐指南
漸進式爬取策略
// 第 1 步先 map,瞭解範圍
const mapResult = await callMapAPI(domain);
// 第 2 步單個測試抓取
const testResult = await callScrapeAPI(sample_url);
// 第 3 步確認格式後,批量爬取
const crawlResult = await callCrawlAPI(domain, config);錯誤處理和重試機制
async function robustScrape(url, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
try {
const result = await callScrapeAPI(url);
if (result.status === 'success') return result;
// 任務未完成,繼續輪詢
if (result.status === 'pending') {
await sleep(5000 * Math.pow(2, i));
continue;
}
} catch (error) {
if (i === maxRetries - 1) throw error;
await sleep(1000 * Math.pow(2, i));
}
}
}批量操作的併發控制
// 使用隊列限制併發數,避免 API 限流
const queue = new PQueue({ concurrency: 5 });
for (const url of urls) {
queue.add(() => callScrapeAPI(url));
}
await queue.onIdle();成本監控和管理
// 跟蹤 API 使用量,避免意外超支
const usage = {
scrape_calls: 0,
crawl_calls: 0,
map_calls: 0,
search_calls: 0
};
// 定期上報到監控系統
function trackAPICall(operation) {
usage[operation]++;
if (shouldReport(usage)) {
reportToMonitoring(usage);
}
}這個項目有啥優劣勢
優勢所在
1. 標準化和一致性 為多智能體系統建立了統一的網絡爬蟲接口標準 2. 生產就緒 完整的錯誤處理、異步支持、結果輪詢等生產級功能都有 3. 易於集成 純 REST API,任何語言和框架都能使用 4. 文檔完善 詳細的參數說明、cURL 和 Node.js 示例 5. 雲端託管 無需維護爬蟲基礎設施,自動擴展 6. 反爬蟲對抗 內置多項對抗措施,提高成功率
劣勢或限制
1. 成本考量 超出免費額度後需要付費,對大規模爬蟲項目可能成本較高 2. API 依賴 完全依賴第三方服務,網絡不可用時無法工作 3. 定製能力 相比自建爬蟲,定製化程度較低 4. 隱私考慮 數據經過第三方服務,對敏感數據可能不適用
適合哪些人用,不適合哪些場景
強烈推薦給以下人羣
1. AI/LLM 應用開發者 需要為智能體提供網絡信息獲取能力的 2. 數據分析團隊 需要快速構建數據收集管道的 3. 企業自動化工程師 需要集成網絡爬蟲到業務流程中的 4. 學術研究人員 需要採集網絡數據進行分析的 5. 多智能體框架使用者 想要標準化的 API 接口的
可能不太適合的場景
1. 需要大規模爬蟲但成本敏感的項目 2. 需要爬取受嚴格反爬保護的網站 3. 對數據隱私有極高要求的應用 4. 需要完全自主控制爬蟲行為的情況
寫在最後
一句話說明白,XCrawl Skills 是個設計精良、文檔完善的開源項目。通過標準化的技能定義和 REST API 設計,為現代多智能體系統提供了一套完整的網絡數據採集解決方案。
參考資源:
- • 項目首頁 https://www.xcrawl.com/
- • 技術文檔 https://docs.xcrawl.com/
- • 官方倉庫 https://github.com/xcrawl-api/xcrawl-skills
- • 控制面板 https://dash.xcrawl.com/
如果本文對您有幫助,也請幫忙點個 贊👍 + 在看 哈!❤️關注小智AI指南公眾號,AI 路上不迷路