Signal Lab Apify Tools 是做什麼的?
將 Signal Lab 作為一個路由技能,用於一組精簡的公開資料工作流程。優先選擇與任務最匹配的最小範圍 Actor,保持輸入邊界明確,並將即時的 Apify Actor 輸入結構定義 (input schema) 和定價頁面 (Pricing tab) 視為最終的事實依據。
使用時機
- 使用者需要可用的公開 YouTube 字幕或帶有時間戳記的字幕片段,用於研究、RAG 或分析。
- 使用者需要將一個公開網站或有限制的同網域爬取結果,轉換為乾淨的 Markdown 格式,用於 RAG、語義搜尋、索引或 LLM 分析。
- 使用者已有一個或多個公開的職缺網址,並需要正規化的職缺欄位,特別是頁面中公開的 Schema.org
JobPosting資料。 - 使用者需要公開的 Amazon 產品價格或庫存追蹤、即時 Google Autocomplete 搜尋建議、公開的 Reddit 研究,或受支援的餐廳菜單提取。
- 支援 MCP 的客戶端應透過 Apify 託管的 MCP 伺服器,將一個或多個 Signal Lab Actor 作為工具公開。
- 非 MCP 的工作流程應透過 Apify REST API 呼叫對應的 Actor,並消費其 Dataset。
不應使用時機
- 任務需要繞過登入牆、付費牆、驗證碼 (CAPTCHA)、機器人限制、反機器人控制、私人頁面或其他存取控制機制。
- 使用者要求對一個沒有公開可用字幕軌的 YouTube 影片進行音訊轉錄;YouTube Actor 僅提取可用的字幕,並非語音轉文字服務。
- 網站需要客戶端 JavaScript 渲染,而純 HTTP 爬蟲無法提供;請勿聲稱 Website to Markdown Actor 能渲染單頁應用程式 (SPA)。
- 使用者想要進行廣泛的求職平台搜尋,而非從已知的受支援公開職缺網址中提取資料;請勿暗示 Job Vacancy Scraper 能搜尋所有求職平台。
- 請求的來源或用途會違反相關法律、隱私要求、版權義務、網站條款或使用者的授權範圍。
- 任務可以無需執行外部資料即可直接回答;請勿為了展示技能而啟動 Actor。
工作流程
- 辨識確切的資料需求,並選擇最匹配的最小範圍工具。
- YouTube 字幕:
signal_lab/youtube-transcript-scraper - 網站轉 Markdown:
signal_lab/website-to-markdown-crawler - 已知公開職缺網址提取:
signal_lab/job-vacancy-scraper - Amazon 價格追蹤:
signal_lab/amazon-price-tracker - Google Autocomplete 研究:
signal_lab/google-autocomplete-keywords - Reddit 公開研究:
signal_lab/reddit-search-comments - 餐廳菜單提取:
signal_lab/restaurant-menu-extractor
- YouTube 字幕:
- 在執行前,閱讀該工具的即時 Apify 輸入結構定義 (input schema) 和定價頁面 (Pricing tab)。定價、可用性和結構定義可能會變更;文件中的範例不能取代即時狀態。
- 選擇執行表面。
- 當客戶端支援 MCP 且使用者能以 Apify 身分驗證時,優先選擇 Apify 託管的 MCP。
- 否則,使用使用者的個人 Apify Token 呼叫 Apify REST Actor API。
- 從最小且有用的邊界輸入開始。
- 對於爬取任務,首先最小化頁面數量和深度。
- 對於網址/影片/產品列表,先測試一個小子集再進行擴展。
- 切勿僅為了收集更多資料而增加花費或範圍。
- 等待執行結束,然後消費預設的 Dataset 或 Actor 的文件化輸出。
- 驗證返回的欄位確實來自資料來源。缺少來源欄位並不代表該欄位存在。
- 只有在第一個邊界結果有用,且使用者接受即時定價/經濟效益後,才進行規模擴展。
直接工具連結
當使用者或代理需要檢查即時結構定義、定價頁面、範例或啟動執行時,請使用這些標準的 Store 頁面:
- YouTube 字幕:https://apify.com/signal_lab/youtube-transcript-scraper
- 網站轉 Markdown:https://apify.com/signal_lab/website-to-markdown-crawler
- 已知公開職缺網址提取:https://apify.com/signal_lab/job-vacancy-scraper
- Amazon 價格追蹤:https://apify.com/signal_lab/amazon-price-tracker
- Google Autocomplete 研究:https://apify.com/signal_lab/google-autocomplete-keywords
- Reddit 公開研究:https://apify.com/signal_lab/reddit-search-comments
- 餐廳菜單提取:https://apify.com/signal_lab/restaurant-menu-extractor
對於 MCP 客戶端,應僅為當前任務暴露所需的工具,透過 Apify 託管的 MCP 伺服器進行,而不是給予代理一個比必要範圍更廣的工具表面。
失敗、重試與成本處理
- 將 HTTP
429視為流量壓力信號,而非允許提高並發請求數。當有Retry-After標頭時應遵守;否則使用有限制的指數退避策略並加入抖動。 - 僅對短暫的
5xx、網路或超時錯誤進行少量次數的重試。不要重試確定性的4xx驗證/認證錯誤,直到輸入或認證問題被修正。 - 如果 Actor 執行達到
FAILED、TIMED-OUT或ABORTED狀態,在決定是否重試前,先檢查執行狀態/日誌證據。切勿盲目地重複付費重試。 - 對於輪詢(polling),應在狀態檢查之間進行退避,而不是密集地呼叫 API。一旦執行狀態為終端狀態,就停止輪詢。
- 重試時保持原始輸入的邊界。不要將提高
maxPages、項目數量、爬取深度、並發數或代理範圍作為通用的失敗應對措施。 - 在實質性地擴大重試或批次處理範圍之前,重新檢查即時的定價頁面 (Pricing tab)。一次成功的 API 請求並不代表後續的執行是免費的。
- 如果重複的短暫重試失敗、來源阻擋了合法存取、認證資訊不可用,或下一次嘗試將實質上增加花費,則停止並回報阻礙因素。
- 切勿將一次失敗的付費執行,轉變為啟動另一個付費 Actor 的藉口,除非有明確的任務匹配且使用者已授權其經濟效益。
規則
- 始終使用使用者自己的 Apify 認證來進行付費執行或 MCP 授權。
- 絕不嵌入、暴露、代理或請求 Signal Lab 擁有者的憑證。
- 絕不將公開的 Actor 執行次數、總使用者數、目錄列表或成功的 API 請求視為建立者收入的證明。
- 絕不承諾來源頁面或字幕軌未暴露的欄位。
- 絕不聲稱擁有繞過存取控制的能力。
- 優先選擇可逆的、有邊界的呼叫以及最小的必要資料量。
- 在執行前,使用即時的 Apify 定價頁面 (Pricing tab) 作為商業事實依據。
- 對於 Website to Markdown,請尊重其 HTTP 爬蟲的限制和邊界爬取控制。
- 對於 YouTube,將輸出描述為可用的公開字幕/時間戳記,而不是新產生的轉錄內容。
- 對於職缺提取,將其描述為已知公開網址的提取和 Schema.org 感知的解析,而不是通用的求職搜尋。
範例
用於 RAG 的 YouTube 字幕
使用者需求:「從這些公開的 YouTube 影片中獲取時間戳記,以便我可以建立一個具有引用感知能力的 RAG 索引。」
使用 signal_lab/youtube-transcript-scraper,提供一個小型公開網址集合,請求時間戳記片段,然後在建構下游索引時保留來源網址、語言、轉錄文字和片段時間。
網站文件轉 Markdown
使用者需求:「將這個文件網站轉換成一個小型的 Markdown 語料庫,供我的 LLM 使用。」
使用 signal_lab/website-to-markdown-crawler。從一個頁面或較低的 maxPages 值開始,保持啟用 sameDomainOnly,保持爬取深度較低,並遵守 robots 規則。在擴展之前,先檢查前幾筆 Dataset 的資料。
已知職缺轉換為結構化 JSON
使用者需求:「從這五個職缺網址中,正規化職稱、公司、地點、薪資和日期等資訊。」
僅針對提供的公開網址使用 signal_lab/job-vacancy-scraper。回傳頁面實際暴露的欄位,並標註缺失值,而不是虛構它們。
MCP 連線
對於一個聚焦於 Website to Markdown 的工具,支援 MCP 的客戶端可以使用:
{
"mcpServers": {
"signal-lab-markdown": {
"url": "https://mcp.apify.com?tools=signal_lab/website-to-markdown-crawler"
}
}
}
Apify 負責處理認證。請勿將擁有者 Token 放入共享配置中。
邊緣情況
- 如果無法取得 Apify 認證,請提供正確的 Actor 或 MCP 連線路徑,但不要使用他人憑證執行付費工作。
- 如果即時的 Actor 結構定義 (schema) 與此技能文件不同,請遵循即時結構定義,並相應更新假設。
- 如果頁面是純 JavaScript 渲染,且 HTTP 爬蟲回傳不完整的內容,請停止並解釋渲染限制,而不是升級為繞過存取控制的技術。
- 如果 YouTube 沒有公開可用的字幕,請停止並回報此限制;不要靜默地切換到另一個付費轉錄產品。
- 如果職缺頁面缺少薪資或結構化元數據,請回傳可驗證存在的欄位,並將其餘部分標記為缺失。
- 如果請求的執行可能會變得很龐大或昂貴,請縮小初始輸入範圍,並在實質上擴大花費之前請求批准。
參考資料
- Signal Lab 開發者中心:https://first-livid-omega.vercel.app/
- AI 代理探索索引:https://first-livid-omega.vercel.app/llms.txt
- 官方 MCP Registry 識別碼:
io.github.VZezelin/signal-lab-apify-tools - 官方 MCP Registry 搜尋:https://registry.modelcontextprotocol.io/?q=io.github.VZezelin%2Fsignal-lab-apify-tools
- Signal Lab 在 Apify 上:https://apify.com/signal_lab
- YouTube Transcript API 指南:https://first-livid-omega.vercel.app/youtube-transcript-api.html
- Website to Markdown API 指南:https://first-livid-omega.vercel.app/website-to-markdown-api.html
- Job Posting Scraper API 指南:https://first-livid-omega.vercel.app/job-posting-scraper-api.html