Project Icon

crawlee

功能强大的网页爬虫和浏览器自动化库

Crawlee是一个功能丰富的网络爬虫和浏览器自动化库,适用于各种网页数据采集和自动化任务。它提供HTTP和无头浏览器爬取的统一接口,支持持久化队列、可插拔存储和自动扩展。Crawlee具有代理轮换功能,能模拟人性化的爬取行为,有效避开常见的反爬虫措施。该库易于配置和使用,可快速构建稳定高效的爬虫系统。Crawlee基于Node.js开发,支持TypeScript,并提供了完善的文档和示例,方便开发者快速上手和集成。

Crawlee
一个网络爬虫和浏览器自动化库

NPM最新版本 下载量 在Discord上聊天 构建状态

Crawlee涵盖了您的爬虫和抓取的全过程,帮助您快速构建可靠的爬虫。

即使使用默认配置,您的爬虫也会表现得像人类一样,能够避开现代机器人保护机制的检测。Crawlee为您提供了爬取网页链接、抓取数据并将其存储到磁盘或云端的工具,同时保持可配置性以满足您项目的需求。

Crawlee作为crawlee NPM包提供。

👉 Crawlee项目网站查看完整文档、指南和示例 👈

Python版Crawlee现已开放早期使用。🐍 👉 查看源代码 👈

安装

我们建议访问Crawlee文档中的介绍教程以获取更多信息。

Crawlee需要Node.js 16或更高版本

使用Crawlee CLI

尝试Crawlee的最快方法是使用Crawlee CLI并选择入门示例。CLI将为您安装所有必要的依赖项并添加样板代码供您使用。

npx crawlee create my-crawler
cd my-crawler
npm start

手动安装

如果您更喜欢将Crawlee添加到您自己的项目中,请尝试以下示例。因为它使用了PlaywrightCrawler,我们还需要安装Playwright。为了减小安装包大小,Crawlee并未捆绑Playwright。

npm install crawlee playwright
import { PlaywrightCrawler, Dataset } from 'crawlee';

// PlaywrightCrawler使用Playwright库控制的无头浏览器爬取网页。
const crawler = new PlaywrightCrawler({
    // 使用requestHandler处理每个爬取的页面。
    async requestHandler({ request, page, enqueueLinks, log }) {
        const title = await page.title();
        log.info(`${request.loadedUrl}的标题是'${title}'`);

        // 将结果以JSON格式保存到 ./storage/datasets/default
        await Dataset.pushData({ title, url: request.loadedUrl });

        // 从当前页面提取链接
        // 并将它们添加到爬取队列中。
        await enqueueLinks();
    },
    // 取消注释此选项以查看浏览器窗口。
    // headless: false,
});

// 将第一个URL添加到队列并开始爬取。
await crawler.run(['https://crawlee.dev']);

默认情况下,Crawlee将数据存储在当前工作目录的./storage中。您可以通过Crawlee配置覆盖此目录。有关详细信息,请参阅配置指南请求存储结果存储

🛠 功能

  • HTTP和无头浏览器爬取的单一接口
  • 用于爬取URL的持久化队列(广度优先和深度优先)
  • 可插拔的表格数据和文件存储
  • 根据可用系统资源自动扩展
  • 集成的代理轮换和会话管理
  • 可通过钩子自定义的生命周期
  • 用于引导项目的CLI
  • 可配置的路由错误处理重试
  • 可直接部署的Dockerfiles
  • 使用泛型的TypeScript编写

👾 HTTP爬取

  • 零配置HTTP2支持,甚至支持代理
  • 自动生成类浏览器头部
  • 复制浏览器的TLS指纹
  • 集成快速HTML解析器。Cheerio和JSDOM
  • 是的,您也可以抓取JSON API

💻 真实浏览器爬取

  • JavaScript渲染截图
  • 支持无头有头模式
  • 零配置生成类人指纹
  • 自动浏览器管理
  • 使用相同接口的PlaywrightPuppeteer
  • ChromeFirefoxWebkit等多种浏览器

在Apify平台上使用

Crawlee是开源的,可以在任何地方运行,但由于它是由Apify开发的,因此在Apify平台上设置和在云中运行非常容易。访问Apify SDK网站了解更多关于将Crawlee部署到Apify平台的信息。

支持

如果您发现Crawlee的任何错误或问题,请在GitHub上提交问题。如有疑问,您可以在Stack Overflow上提问,在GitHub讨论区提问,或加入我们的Discord服务器

贡献

欢迎您的代码贡献,您将获得永恒的赞誉!如果您有任何改进的想法,可以提交问题或创建拉取请求。有关贡献指南和行为准则,请参阅CONTRIBUTING.md

许可证

本项目根据Apache License 2.0许可 - 详情请参阅LICENSE.md文件。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号