网页数据抓取用到的组件有(crawlee开源网页抓取和浏览器自动化库)
网页数据抓取用到的组件有(crawlee开源网页抓取和浏览器自动化库)npm install crawlee playwrightimport { 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
简介ℹ️Crawlee 是Apify SDK的继承者。用TypeScript完全重写,以获得更好的开发者体验,并具有更强大的抗阻塞功能。界面与 Apify SDK 几乎相同,因此升级轻而易举。阅读升级指南以了解更改。
Crawlee 涵盖了端到端的爬行和抓取,并帮助您构建可靠的抓取工具。快速地。
即使使用默认配置,您的爬虫也会像人类一样在现代机器人保护的雷达下飞行。Crawlee 为您提供了在 Web 上抓取链接、抓取数据并将其存储到磁盘或云中的工具,同时保持可配置以满足您的项目需求。
Crawlee 以crawleeNPM 包的形式提供。
安装我们建议您访问Crawlee 文档中的介绍教程以获取更多信息。
Crawlee 需要Node.js 16 或更高版本。
使用 Crawlee CLI试用 Crawlee 的最快方法是使用Crawlee CLI并选择Getting started example。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引导您的项目
- 可配置的路由、错误处理和重试
- 准备部署的Dockerfile
- 用TypeScript用泛型编写
- 零配置HTTP2 支持,即使是代理
- 自动生成类似浏览器的标题
- 复制浏览器TLS 指纹
- 集成快速HTML 解析器。Cheerio 和 JSDOM
- 是的,您也可以抓取JSON API
- JavaScript渲染和截图
- 无头和有头支持
- 零配置生成类人指纹
- 自动浏览器管理
- 使用相同界面的Playwright和Puppeteer
- Chrome Firefox Webkit等等