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都能提供可靠的解决方案。