apify/crawlee-pythonView GitHub Homepage for Latest Official Releases
專為 Python 建構的網頁抓取和瀏覽器自動化庫,用於建構可靠的爬蟲,支援提取數據用於 AI、LLM、RAG 或 GPT 應用
Apache-2.0Pythoncrawlee-pythonapify 6.3k Last Updated: September 25, 2025
Crawlee Python - 網頁抓取和瀏覽器自動化庫
項目概述
Crawlee 是一個專為 Python 建構的網頁抓取和瀏覽器自動化庫,用於構建可靠的爬蟲。可以提取數據用於 AI、LLM、RAG 或 GPT 應用,從網站下載 HTML、PDF、JPG、PNG 和其他文件。該項目由 Apify 公司開發,是其開源網頁抓取庫,基於 BeautifulSoup 和 Playwright 建構,採用一體化的網頁抓取方法。
主要特性
核心功能
- 多引擎支持: 與 BeautifulSoup、Playwright 和原生 HTTP 配合使用
- 靈活模式: 支持有頭和無頭模式
- 代理輪換: 內置代理輪換功能
- 文件下載: 支持下載 HTML、PDF、JPG、PNG 等各種格式文件
- AI 集成優化: 專門為 AI、LLM、RAG 和 GPT 應用優化數據提取
技術優勢
- 類型提示: 現代化設計,包含 Python 類型提示,幫助早期發現錯誤
- 穩定可靠: 由每天抓取數百萬頁面的專業開發者構建
- 易於使用: 允許根據需求輕鬆切換不同的抓取庫
- 錯誤處理: 內置強大的錯誤處理和重試機制
技術架構
底層技術棧
# 主要依賴
- BeautifulSoup: 靜態 HTML 解析
- Playwright: 動態 JavaScript 渲染頁面處理
- HTTP 客戶端: 原生 HTTP 請求支持
集成能力
- Apify 平台集成: 與 Apify 平台無縫集成
- 多種抓取技術: 支持從靜態 HTML 解析到動態 JavaScript 渲染的各種抓取技術
使用場景
主要應用領域
- AI 數據收集: 為機器學習和 AI 應用收集訓練數據
- RAG 系統: 為檢索增強生成系統提供數據源
- GPT 應用: 為各種 GPT 應用提供實時數據
- 內容監控: 監控網站內容變化
- 數據分析: 收集數據用於商業分析
與競品對比
從 Python 的兩個主要開源選項 Scrapy 和 Crawlee 中,Apify 選擇了後者,認為初學者會更喜歡它,因為它允許用更少的代碼和更少的閱讀時間創建爬蟲。
項目狀態
發布信息
- 開源許可: 完全開源免費
- 語言支持: Python 版本(同時也有 Node.js 版本)
- 發布時間: Python 版本發布僅幾週就獲得了大量關注
- 維護狀態: 活躍維護中
社區反響
- GitHub 上獲得廣泛關注
- 由於 JavaScript 版本的成功和 Python 社區的需求,推出了 Python 版本
- 在 Hacker News 等技術社區獲得積極反饋
安裝和快速開始
安裝方式
pip install crawlee
基本使用示例
from crawlee import BeautifulSoupCrawler
# 創建爬蟲實例
crawler = BeautifulSoupCrawler()
# 定義請求處理器
@crawler.router.default_handler
async def handler(context):
# 提取數據
data = {
'title': context.soup.find('title').get_text(),
'url': context.request.url
}
# 保存數據
await context.push_data(data)
# 運行爬蟲
await crawler.run(['https://example.com'])
高級功能
代理支持
# 配置代理輪換
crawler = BeautifulSoupCrawler(
proxy_configuration={
'proxy_urls': ['http://proxy1:8000', 'http://proxy2:8000']
}
)
錯誤處理和重試
# 自動重試配置
crawler = BeautifulSoupCrawler(
max_requests_per_crawl=1000,
request_timeout=30,
retry_on_blocked=True
)
總結
Crawlee Python 是一個現代化、功能強大的網頁抓取庫,特別適合需要為 AI 應用收集數據的場景。它結合了多個成熟抓取技術的優勢,提供了簡潔的 API 和強大的功能,是 Python 開發者進行網頁抓取的優秀選擇。無論是簡單的數據提取還是複雜的瀏覽器自動化任務,Crawlee 都能提供可靠的解決方案。