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