
Firecrawl實戰指南網頁抓取、結構化提取到深度研究一次講透【免費下載鏈接】firecrawlThe context API to search, scrape, and interact with the web at scale. 項目地址: https://gitcode.com/GitHub_Trending/fi/firecrawl做競品調研時你手動復制了 200 個網頁再一條條粘進 LLM 提示詞里。Firecrawl 把這條鏈路壓縮成一次 API 調用網頁抓取后直接輸出 LLM 友好的 Markdown再按你定義的 Schema 完成結構化提取。Firecrawl是什么把網站變成可調用的數據源Firecrawl 是一個面向 AI 應用的網頁抓取與數據提取 API把任意 URL 或整個網站轉換成干凈的 Markdown / JSON內置渲染、反爬代理、結構化提取和深度研究能力解決網頁數據怎么穩定地喂給模型這個核心問題。快速上手安裝、配置、第一次抓取安裝pip install firecrawl-py配置在 Firecrawl 控制臺注冊后拿到 Key設export FIRECRAWL_API_KEY你的key調用三行代碼完成第一次抓取下面這段代碼抓取一個頁面只取 Markdown 正文是后面所有能力的基礎from firecrawl import FirecrawlApp app FirecrawlApp(api_keyfc-xxxx) result app.scrape_url(https://example.com/docs, formats[markdown]) print(result[markdown])輸出示例# Getting Started Install with npm install ... POST /v2/scrape accepts a URL and returns markdown ...單頁抓取與格式轉換把網頁變成干凈的 Markdown語料入庫前的清洗是最典型的 Markdown 轉換需求原文導航、廣告、腳注全都會污染 LLM 的上下文。only_main_contentTrue只保留正文配合links一次拿全正文和站內鏈接直接入隊做 RAG。result app.scrape_url( https://example.com/docs/quickstart, formats[markdown, links], only_main_contentTrue, )輸出示例{ markdown: # Quickstart\nInstall with npm ..., links: [https://example.com/docs/api, https://example.com/docs/cli] } 技巧需要 JS 渲染的頁面加wait_for1500讓動態內容加載完再抓避免拿到空殼。拿到單頁 Markdown 后下一個需求通常是只留下我要的字段——這就從格式轉換進入結構化提取。結構化提取用 Pydantic 定義數據模型競品監控里你只關心標題、價格和更新時間而不是整頁正文。用 Pydantic 把字段和描述寫清楚Firecrawl 的extract能力會按 Schema 從頁面里抽數據返回的就是干凈 JSON不用自己正則。完整可運行腳本見examples/hacker_news_scraper/firecrawl_scraper.py。from pydantic import BaseModel, Field, List class NewsItem(BaseModel): title: str Field(description新聞標題) upvotes: str Field(description點贊數) class NewsData(BaseModel): news_items: List[NewsItem] data app.scrape_url( https://news.ycombinator.com/, formats[extract], extract{schema: NewsData.model_json_schema()}, )輸出示例{ extract: { news_items: [ {title: Show HN: ..., upvotes: 312}, {title: Postgres 17 released, upvotes: 287} ] } } 技巧Field(description...)里寫清取值規則如取整數、不帶逗號提取準確率明顯更高。單頁提取解決已知 URL 取字段但真實調研里你連該看哪些頁面都還沒確定——這就要交給深度研究。深度研究多輪探索與實時進度回調評估目標城市租房市場行情時你不知道該看哪些房源站。deep_research會自己搜索、逐頁跟進、交叉分析on_activity回調把每一步search / scrape / analyze實時打出來過程不再黑盒。示例見examples/deep-research-apartment-finder/apartment_finder.py。result app.deep_research( query杭州西湖區兩居室租房預算4000以內, max_depth3, # 迭代輪數 time_limit180, # 秒 max_urls20, # 最多分析的URL數 on_activitylambda a: print(f[{a[type]}] {a[message]}), ) print(result[data][finalAnalysis])輸出示例[search] 找到 12 個相關來源 [scrape] 已抓取 /listings/hangzhou-xihu [analyze] 正在匯總價格區間 finalAnalysis: 西湖區兩居室均價 3600-4200 元性價比集中在文新、三墩板塊 ... 技巧max_urls先設 10 試跑一輪確認來源質量后再放大避免預算燒在低質頁面上。研究能力回答了看哪里但業務要的不是一次性結果而是持續、自動、帶動作的數據流。自動化與業務集成批量抓取加閾值告警價格監控是最直接的落地場景每 30 分鐘抓一批商品頁按 Schema 提取價格比上一輪跌了就推 Discord。抓取側用batch_scrape_urls并發處理業務側就是一個普通的定時腳本。倉庫里examples/blog-articles/amazon-price-tracking/有一套完整的價格跟蹤實現。results app.batch_scrape_urls(product_urls, formats[markdown]) for r in results[data]: if r[success]: price extract_price_from_markdown(r[markdown]) if price last_price[r[url]]: push_discord(r[url], price)輸出示例[OK] /products/b001 price41.47 (last 43.20) [ALERT] 降價 $1.73 - 已推送 Discord 技巧批量任務用poll_interval2控制輪詢頻率長任務配合 webhook 回調比客戶端死等更穩。常見問題與避坑Q遇到 429 限流怎么辦按套餐 QPS 控制并發批量接口用poll_interval放慢輪詢失敗請求指數退避重試即可。Q大頁面抓取超時怎么解決timeout單位是毫秒JS 重的頁面設 30000或用wait_for只等關鍵元素出現比干等更快。Q目標站反爬嚴格怎么辦scrape_url支持proxystealth或 auto走隱身代理池多數 Cloudflare 級防護可過仍失敗就換actions模擬點擊、滾動。Q費用怎么估算按抓取頁數計費批量和多格式輸出截圖、PDF 解析單價更高先用max_urls、limit把規模壓到最小再放量。Q非 Python 項目能用嗎官方提供 JS、Go、Java、Ruby、PHP、.NET、Rust 等 SDKAPI 形態一致examples/下按語言都有示例。延伸與搭配把抓取的 Markdown 切塊后寫進向量數據庫就是一套現成的 RAG 語料管線定時任務跑批量抓取加閾值告警監控類業務直接落地。倉庫examples/目錄按場景分了 50 個示例克隆后即可對照git clone https://gitcode.com/GitHub_Trending/fi/firecrawl。能力邊界在于你能定義多準的 Schema下一步值得試的是把extract的字段描述寫成業務語言而不是字段名直譯。【免費下載鏈接】firecrawlThe context API to search, scrape, and interact with the web at scale. 項目地址: https://gitcode.com/GitHub_Trending/fi/firecrawl創作聲明:本文部分內容由AI輔助生成(AIGC),僅供參考