Quick Start | Crawlee
通过这个简短的教程,您可以在一两分钟内开始使用Crawlee进行抓取。要了解更多信息,请阅读简介。
网页抓取和浏览器自动化库
Crawlee 涵盖了端到端的爬行和抓取,并帮助您构建可靠的抓取工具。快速地。
即使使用默认配置,您的爬虫也会像人类一样出现并在现代机器人保护的雷达下飞行。Crawlee 为您提供了在网络上抓取链接、抓取数据并将其存储到磁盘或云的工具,同时保持可配置以满足您的项目需求。
Crawlee 可作为crawlee
NPM 包使用。
👉在**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 捆绑在一起以减少安装大小。
npm install crawlee playwright
import { PlaywrightCrawler, Dataset } from 'crawlee';
// PlaywrightCrawler crawls the web using a headless
// browser controlled by the Playwright library.
const crawler = new PlaywrightCrawler({
// Use the requestHandler to process each of the crawled pages.
async requestHandler({ request, page, enqueueLinks, log }) {
const title = await page.title();
log.info(`Title of ${request.loadedUrl} is '${title}'`);
// Save results as JSON to ./storage/datasets/default
await Dataset.pushData({ title, url: request.loadedUrl });
// Extract links from the current page
// and add them to the crawling queue.
await enqueueLinks();
},
// Uncomment this option to see the browser window.
// headless: false,
});
// Add first URL to the queue and start the crawl.
await crawler.run(['https://crawlee.dev']);
默认情况下,Crawlee 将数据存储./storage
在当前工作目录中。您可以通过 Crawlee 配置覆盖此目录。详细信息请参见配置指南、请求存储和结果存储。
🛠 特点
- 用于HTTP 和无头浏览器爬行的单一接口
- 要抓取的 URL 的持久队列(广度和深度优先)
- 表格数据和文件的可插拔存储
- 利用可用系统资源自动扩展
- 集成代理轮换和会话管理
- 使用钩子可定制生命周期
- CLI来引导您的项目
- 可配置的路由、错误处理和重试
- Dockerfiles准备部署
- 使用泛型用TypeScript编写
👾 HTTP 爬取
- 零配置HTTP2 支持,即使对于代理也是如此
- 自动生成类似浏览器的标题
- 浏览器TLS 指纹的复制
- 集成快速HTML 解析器。Cheerio 和 JSDOM
- 是的,您也可以抓取JSON API
💻 真实的浏览器爬行
- JavaScript渲染和屏幕截图
- 无头和有头支持
- 零配置生成类人指纹
- 自动浏览器管理
- 使用具有相同界面的Playwright和Puppeteer
- Chrome、Firefox、Webkit等
Apify 平台上的使用
Crawlee 是开源的,可以在任何地方运行,但由于它是由Apify开发的,因此很容易在 Apify 平台上设置并在云端运行。访问Apify SDK 网站,了解有关将 Crawlee 部署到 Apify 平台的更多信息。
支持
如果您发现 Crawlee 存在任何错误或问题,请在 GitHub 上提交问题。如有问题,您可以在Stack Overflow 、GitHub 讨论中提问,或者加入我们的Discord 服务器。
贡献
欢迎您贡献代码,您将受到永远的赞扬!如果您有任何改进想法,请提交问题或创建拉取请求。有关贡献指南和行为准则,请参阅CONTRIBUTING.md。
执照
该项目已获得 Apache License 2.0 的许可 -有关详细信息,请参阅LICENSE.md文件。