台灣讀者必看!Crawl4AI:讓你輕鬆駕馭AI的開源網路爬蟲神器!
各位台灣的朋友們,大家好!今天要來跟大家介紹一個超酷的開源工具,叫做 Crawl4AI。如果你對AI、資料科學、或是網路爬蟲有興趣,那這篇文章絕對不能錯過!保證用最台灣的語言,讓你輕鬆了解Crawl4AI的核心概念,並且教你如何快速上手,打造屬於自己的資料抓取應用。
什麼是Crawl4AI?為什麼它這麼厲害?
簡單來說,Crawl4AI 是一個專為大型語言模型 (LLM) 設計的開源網路爬蟲和資料抓取工具。它就像一個超強的資料吸塵器,可以快速、精準地從網路上抓取你需要的資訊,並且轉換成AI模型容易理解的格式,例如 Markdown。
為什麼你需要Crawl4AI?
- AI時代,資料就是王道! 現在AI發展一日千里,但訓練出厲害的AI模型,需要大量的資料。Crawl4AI可以幫助你快速建立自己的資料集,不再受限於現有的公開資料。
- 快速、有效率! 根據官方說法,Crawl4AI 的速度比傳統爬蟲快 6 倍!這代表你可以省下大量的時間和資源,更快地完成你的專案。
- 專為LLM設計! Crawl4AI 會將抓取到的資料轉換成適合LLM訓練的 Markdown 格式,省去你額外處理資料的時間。
- 完全開源、免費! 不需要申請 API 金鑰,也不用擔心被收費。你可以自由地使用、修改、分享 Crawl4AI,打造最符合你需求的爬蟲工具。
- 社群活躍! Crawl4AI 在 GitHub 上非常熱門,擁有活躍的社群支持。遇到問題可以向社群求助,也可以參與貢獻,一起讓 Crawl4AI 變得更好。
Crawl4AI的強大功能:
Crawl4AI 不只是個簡單的爬蟲工具,它還擁有很多強大的功能,讓你可以更精準、更有效率地抓取資料:
- Markdown 生成:
- 乾淨的Markdown: 生成結構化的 Markdown,格式正確。
- 精簡的Markdown: 使用啟發式過濾,移除雜訊,使資料更適合AI處理。
- 參考文獻: 將頁面連結轉換為帶編號的參考文獻列表。
- 自定義策略: 建立客製化的 Markdown 生成策略。
- BM25 演算法: 使用 BM25 進行內容過濾,提取核心資訊。
- 結構化資料提取:
- LLM驅動的提取: 支援所有LLM(開源和專有)進行結構化資料提取。
- 分塊策略: 實作分塊(基於主題、正則表達式、句子級別)以針對性地處理內容。
- 餘弦相似度: 根據使用者查詢找到相關的內容塊,以進行語義提取。
- 基於CSS的提取: 使用 XPath 和 CSS 選擇器快速進行基於模式的資料提取。
- 模式定義: 定義自定義模式,從重複的模式中提取結構化的 JSON。
- 瀏覽器整合:
- 託管瀏覽器: 使用使用者擁有的瀏覽器,完全控制,避免被檢測為機器人。
- 遠端瀏覽器控制: 連接到 Chrome 開發者工具協定,以進行遠端、大規模的資料提取。
- 瀏覽器分析器: 建立和管理持久性設定檔,儲存身份驗證狀態、Cookie 和設定。
- 工作階段管理: 儲存瀏覽器狀態並重複使用,以進行多步驟爬取。
- 代理支援: 無縫連接到帶身份驗證的代理,以進行安全存取。
- 完整的瀏覽器控制: 修改標頭、Cookie、使用者代理等,以進行客製化的爬取設定。
- 多瀏覽器支援: 相容 Chromium、Firefox 和 WebKit。
- 動態視窗調整: 自動調整瀏覽器視窗以匹配頁面內容,確保完整渲染並捕獲所有元素。
- 爬取與抓取:
- 媒體支援: 提取圖像、音訊、影片和響應式圖像格式,例如
srcset
和picture
。 - 動態爬取: 執行 JS 並等待非同步或同步提取動態內容。
- 螢幕截圖: 在爬取期間捕獲頁面螢幕截圖以進行除錯或分析。
- 原始資料爬取: 直接處理原始 HTML (
raw:
) 或本機檔案 (file://
)。 - 全面的連結提取: 提取內部連結、外部連結和嵌入的 iframe 內容。
- 可自定義的Hook: 在每個步驟定義Hook以自定義爬取行為。
- 快取: 快取資料以提高速度並避免冗餘提取。
- 元資料提取: 從網頁中檢索結構化的元資料。
- IFrame 內容提取: 從嵌入的 iframe 內容中進行無縫提取。
- 延遲載入處理: 等待圖像完全載入,確保不會因為延遲載入而遺漏任何內容。
- 全頁掃描: 模擬滾動以載入和捕獲所有動態內容,非常適合無限滾動頁面。
- 媒體支援: 提取圖像、音訊、影片和響應式圖像格式,例如
- 部署:
- Dockerized 設定: 優化的 Docker 映像檔,帶 FastAPI 伺服器,易於部署。
- 安全驗證: 內建 JWT 令牌驗證,以確保 API 安全。
- API 閘道: 一鍵部署,具有安全的令牌驗證,適用於基於 API 的工作流程。
- 可擴展的架構: 專為大規模生產和優化的伺服器效能而設計。
- 雲端部署: 適用於主要雲端平台的可部署配置。
- 其他功能:
- 隱身模式: 模仿真實使用者以避免機器人檢測。
- 基於標籤的內容提取: 根據自定義標籤、標頭或元資料改進爬取。
- 連結分析: 提取和分析所有連結以進行詳細的資料探索。
- 錯誤處理: 強大的錯誤管理,可實現無縫執行。
- CORS 和靜態服務: 支援基於檔案系統的快取和跨域請求。
- 清晰的文件: 簡化和更新的指南,適用於入門和進階使用。
給台灣初學者的入門指南:
別擔心,Crawl4AI 雖然功能強大,但入門其實很簡單!以下提供給台灣初學者的快速上手指南:
1. 安裝 Crawl4AI:
首先,你需要在你的電腦上安裝 Crawl4AI。打開你的終端機 (Terminal) 或命令提示字元 (Command Prompt),然後輸入以下指令:
pip install -U crawl4ai
crawl4ai-setup
這個指令會自動安裝 Crawl4AI 以及它需要的相依套件。crawl4ai-setup
會設定瀏覽器。
如果遇到瀏覽器相關問題,可以嘗試手動安裝:
python -m playwright install --with-deps chromium
2. 跑一個簡單的爬蟲:
安裝完成後,就可以開始寫你的第一個爬蟲程式了!建立一個新的 Python 檔案 (例如 crawl_demo.py
),然後複製貼上以下程式碼:
import asyncio
from crawl4ai import *
async def main():
async with AsyncWebCrawler() as crawler:
result = await crawler.arun(
url="https://www.ptt.cc/bbs/Gossiping/index.html", # 換成你想爬的網址
)
print(result.markdown)
if __name__ == "__main__":
asyncio.run(main())
這個程式碼會從 PTT 八卦版的首頁抓取資料,然後轉換成 Markdown 格式並印出來。記得把網址換成你想爬的網站!
3. 執行你的爬蟲程式:
在終端機或命令提示字元中,輸入以下指令來執行你的爬蟲程式:
python crawl_demo.py
如果一切順利,你就會看到程式印出一大堆 Markdown 格式的文字。恭喜你,你已經成功地用 Crawl4AI 抓取了網路資料!
4. 使用命令行介面 (CLI):
Crawl4AI 也提供了方便的命令行介面,讓你不用寫程式碼也能快速抓取資料。例如,要抓取 nbcnews.com 並輸出 Markdown 格式,你可以輸入以下指令:
crwl https://www.nbcnews.com/business -o markdown
進階用法:
Crawl4AI 還有很多進階的功能,例如:
- 深度爬取 (Deep Crawling): 可以設定爬取的深度和策略 (BFS, DFS, BestFirst),讓你可以抓取整個網站的資料。
- 使用 LLM 提取資料: 可以設定問題 (question),讓 Crawl4AI 使用 LLM 從網頁中提取你需要的資訊。
- 使用自己的瀏覽器: 可以設定使用你自己的 Chrome 或 Firefox 瀏覽器,避免被網站偵測為機器人。
個人實作心得與錯誤排除:
在實際使用 Crawl4AI 的過程中,我發現以下幾點需要注意:
- 網站的反爬蟲機制: 有些網站會使用反爬蟲機制來阻止機器人抓取資料。遇到這種情況,你可以嘗試使用代理伺服器 (Proxy) 或調整爬蟲的速度,來避免被封鎖。
- 非同步程式設計 (Asynchronous Programming): Crawl4AI 使用非同步程式設計來提高效率。如果你對非同步程式設計不熟悉,可能需要花一些時間學習。
- 善用社群資源: 如果遇到問題,可以到 Crawl4AI 的 GitHub 頁面或社群論壇尋求協助。通常可以找到解決方案或得到熱心人士的指點。
Crawl4AI 的未來發展:
Crawl4AI 的開發團隊非常積極,不斷地推出新的功能和改進。根據官方的 Roadmap,未來 Crawl4AI 將會加入更多AI相關的功能,例如:
- 基於問題的爬蟲 (Question-Based Crawler): 使用自然語言驅動的網路探索和內容提取。
- 知識最佳化爬蟲 (Knowledge-Optimal Crawler): 在最小化資料提取的同時,最大化知識的獲取。
- 自動化模式生成器 (Automated Schema Generator): 將自然語言轉換為提取模式。
結論:
Crawl4AI 是一個功能強大、易於使用的開源網路爬蟲工具,特別適合想要利用AI分析網路資料的台灣讀者。無論你是學生、研究人員、還是資料科學家,Crawl4AI 都能幫助你快速建立自己的資料集,開啟AI應用的無限可能!趕快去 GitHub 上看看吧!https://github.com/unclecode/crawl4ai
希望這篇文章對大家有幫助!如果還有任何問題,歡迎在下方留言。我們一起學習、一起進步!
參考閱讀
https://github.com/unclecode/crawl4ai