Communitygithub.com

Signal Lab Apify Tools

使用 Signal Lab 精準的 Apify 資料 API 或官方 MCP 工具來處理公開 YouTube 字幕、網站轉 Markdown 的 RAG 導入、已知職缺內容提取、Amazon 價格追蹤、Google Autocomplete 研究、Reddit 研究以及餐廳菜單提取。當代理需要這些公共資料工作流程時使用,並應選擇有限制、可信的 Apify 或 MCP 路徑,而不是自行發明爬取能力。

Signal Lab Apify Tools 是什麼?

Signal Lab Apify Tools 是一個專門的路由技能,提供一組精選的 Apify Actor,專注於處理公開資料的工作流程。它支援的範圍包含 YouTube 公開字幕和時間戳記提取、網站轉換為乾淨 Markdown(適用於 RAG、語義搜尋、索引或 LLM 分析)、已知職缺頁面的結構化資料解析(特別是 Schema.org JobPosting)、Amazon 產品價格與庫存追蹤、Google Autocomplete 關鍵字建議、Reddit 公開討論研究,以及餐廳菜單提取。此技能強調使用最狹義、最匹配任務的 Actor,並將輸入範圍限制在必要的最小值,避免不必要的開銷與浪費。同時,它要求使用者在執行前參考 Apify 的即時 Pricing 頁面,確保花費透明可控。無論是透過 Apify 託管的 MCP 伺服器(適用於支援 MCP 的客戶端)還是直接使用 Apify REST API,Signal Lab 都提供了清晰的執行路徑。此技能也明確說明了不應使用的情境,例如繞過登入牆、驗證碼或反機器人控制,並要求代理在處理失敗、重試與成本控管時採取謹慎的態度。

相容平台✓Claude Code✓Codex CLI✓Cursor
npx skills add https://github.com/VZezelin/first/tree/main/skills/signal-lab-apify-tools

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

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。

工作流程

  1. 辨識確切的資料需求,並選擇最匹配的最小範圍工具。
    • 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
  2. 在執行前,閱讀該工具的即時 Apify 輸入結構定義 (input schema) 和定價頁面 (Pricing tab)。定價、可用性和結構定義可能會變更;文件中的範例不能取代即時狀態。
  3. 選擇執行表面。
    • 當客戶端支援 MCP 且使用者能以 Apify 身分驗證時,優先選擇 Apify 託管的 MCP。
    • 否則,使用使用者的個人 Apify Token 呼叫 Apify REST Actor API。
  4. 從最小且有用的邊界輸入開始。
    • 對於爬取任務,首先最小化頁面數量和深度。
    • 對於網址/影片/產品列表,先測試一個小子集再進行擴展。
    • 切勿僅為了收集更多資料而增加花費或範圍。
  5. 等待執行結束,然後消費預設的 Dataset 或 Actor 的文件化輸出。
  6. 驗證返回的欄位確實來自資料來源。缺少來源欄位並不代表該欄位存在。
  7. 只有在第一個邊界結果有用,且使用者接受即時定價/經濟效益後,才進行規模擴展。

直接工具連結

當使用者或代理需要檢查即時結構定義、定價頁面、範例或啟動執行時,請使用這些標準的 Store 頁面:

對於 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 沒有公開可用的字幕,請停止並回報此限制;不要靜默地切換到另一個付費轉錄產品。
  • 如果職缺頁面缺少薪資或結構化元數據,請回傳可驗證存在的欄位,並將其餘部分標記為缺失。
  • 如果請求的執行可能會變得很龐大或昂貴,請縮小初始輸入範圍,並在實質上擴大花費之前請求批准。

參考資料

相關技能