Crawlee 是一個專為 Python 建構的網頁抓取和瀏覽器自動化庫,用於構建可靠的爬蟲。可以提取數據用於 AI、LLM、RAG 或 GPT 應用,從網站下載 HTML、PDF、JPG、PNG 和其他文件。該項目由 Apify 公司開發,是其開源網頁抓取庫,基於 BeautifulSoup 和 Playwright 建構,採用一體化的網頁抓取方法。
# 主要依賴
- BeautifulSoup: 靜態 HTML 解析
- Playwright: 動態 JavaScript 渲染頁面處理
- HTTP 客戶端: 原生 HTTP 請求支持
從 Python 的兩個主要開源選項 Scrapy 和 Crawlee 中,Apify 選擇了後者,認為初學者會更喜歡它,因為它允許用更少的代碼和更少的閱讀時間創建爬蟲。
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 都能提供可靠的解決方案。