Crawl4AI 是一款开源 LLM 有好的网络爬虫,Crawl4AI 简化了异步Web抓取和数据提取,使其可用于大型语言模型(LLM)和AI应用程序。🆓🌐
同步版:查看README.sync.md。您还可以在分支V0.2.76中访问以前的版本。
- github : https://github.com/unclecode/crawl4ai
- 试用 Colab :https://colab.research.google.com/drive/1REChY6fXQf-EaVYLv0eHEWvzlYxGm0pd
- 官方文档:https://crawl4ai.com/mkdocs/
- 贡献指南 | 许可 | 推特:@unclecode
特点✨
- 🆓完全免费和开源
- 🚀超快的性能,优于许多付费服务
- 🤖LLM友好的输出格式(JSON,清理 HTML ,降价)
- 🌍支持同时抓取多个URL
- 🎨提取并返回所有媒体标签(图像、音频和视频)
- 🔗提取所有外部和内部链接
- 📚从页面中提取元数据
- 🔄抓取前用于身份验证、标题和页面修改的自定义挂钩
- 🕵️用户代理定制
- 🖼️页面截图
- 📜抓取前执行多个自定义JavaScript
- 📊生成结构化输出没有LLM使用JsonCssExtractionStrategy
- 📚各种组块策略:基于主题、正则表达式、句子等
- 🧠高级提取策略:余弦聚类、LLM等
- 🎯CSS选择器支持精确的数据提取
- 📝传递指令/关键字来细化提取
- 🔒代理支持增强隐私和访问
- 🔄复杂多页面抓取场景的会话管理
- 🌐异步架构,以提高性能和可扩展性
Crawl4AI提供灵活的安装选项以适应各种用例。您可以将其安装为Python包或使用Docker。
1、使用pip🐍
选择最适合您需求的安装选项:
1.1 基本安装
对于基本的网络抓取和抓取任务:
默认情况下,这将安装Crawl4AI的异步版本,使用Playwright进行网络抓取。
👉注意:安装Crawl4AI时,安装脚本应自动安装并设置Playwright。但是,如果您遇到任何与Playwright相关的错误,您可以使用以下方法之一手动安装它:
1、通过命令行:
2、如果上述方法不起作用,请尝试以下更具体的命令:
第二种方法在某些情况下被证明更可靠。
1.2 使用同步版本安装
如果您需要使用Selenium的同步版本:
1.3 开发安装
对于计划修改源代码的贡献者:
2、使用Docker🐳
我们正在创建Docker映像并将它们推送到Docker Hub。这将提供一种在容器化环境中运行Crawl4AI的简单方法。敬请关注更新!
有关更详细的安装说明和选项,请参阅我们的安装指南。
1、执行JavaScript和使用CSS选择器
2、使用代理
3、在没有LLM的情况下提取结构化数据
该允许使用CSS选择器从网页中精确提取结构化数据。
有关更高级的使用示例,请查看文档中的示例部分。
4、使用OpenAI提取结构化数据
5、会话管理和动态内容爬行
Crawl4AI擅长处理复杂的场景,例如使用通过JavaScript加载的动态内容抓取多个页面。这是跨多个页面抓取GitHub提交的示例:
此示例演示了Crawl4AI处理异步加载内容的复杂场景的能力。它抓取多个GitHub提交页面,执行JavaScript加载新内容,并使用自定义挂钩确保在继续之前加载数据。
有关更高级的使用示例,请查看文档中的示例部分。
Crawl4AI的设计以速度为主要关注点。我们的目标是通过高质量的数据提取提供尽可能快的响应,最大限度地减少数据和用户之间的抽象。
我们对Crawl4AI和付费服务Firecrawl进行了速度比较。结果证明了Crawl4AI的卓越性能:
如您所见,Crawl4AI的性能明显优于Firecrawl:
- 简单爬行:Crawl4AI比Firecrawl快4倍以上。
- 使用JavaScript执行:即使执行JavaScript以加载更多内容(将找到的图像数量增加一倍),Crawl4AI仍然比Firecrawl的简单抓取更快。
您可以在我们的存储库中找到完整的比较代码。