Fast web scraper using Cheerio for HTML parsing. No browser needed — ideal for static pages.
Create it locally
Main file
// Crawlee - web scraping and browser automation library (Read more at https://crawlee.dev)
import { CheerioCrawler } from '@crawlee/cheerio';
// Scrapely SDK - toolkit for building Scrapely Actors
import { Actor } from 'scrapely';
// this is ESM project, and as such, it requires you to specify extensions in your relative imports
// read more about this here: https://nodejs.org/docs/latest-v18.x/api/esm.html#mandatory-file-extensions
import { router } from './routes.js';
// The init() call configures the Actor to correctly work with the platform-provided environment - mainly the storage infrastructure. It is necessary that every Actor performs an init() call.
await Actor.init();
// Structure of input is defined in input_schema.json
const { startUrls = ['https://crawlee.dev'], maxRequestsPerCrawl = 100 } = (await Actor.getInput()) ?? {};
// Proxy configuration to rotate IP addresses and prevent blocking
// `checkAccess` flag ensures the proxy credentials are valid, but the check can take a few hundred milliseconds.
// Disable it for short runs if you are sure your proxy configuration is correct
const proxyConfiguration = await Actor.createProxyConfiguration({ checkAccess: true });
const crawler = new CheerioCrawler({
proxyConfiguration,
maxRequestsPerCrawl,
requestHandler: router,
});
await crawler.run(startUrls);
// Gracefully exit the Actor process. It's recommended to quit all Actors with an exit()
await Actor.exit();
Crawlee + Cheerio
A fast, production-ready Scrapely Actor template built on CheerioCrawler. Give it a list of
starting URLs and it fetches each page, parses the raw HTML with Cheerio (no browser needed),
and stores the page title and URL in the default dataset.
Included features
- Crawlee and the Scrapely SDK — crawling, request queues and storage
- Input schema — define and validate the Actor's input (
.actor/input_schema.json) - Dataset schema — structured results with a preview view (
.actor/dataset_schema.json) - ESLint + Prettier + Vitest — linting, formatting and a runnable test
Getting started locally
npm install
npm run start # run the Actor
npm run test # run the test suite
Input is read from .actor/input_schema.json. By default the Actor starts from
https://crawlee.dev; change startUrls to point it anywhere.
Deploying to Scrapely
Create an Actor from this template in the Scrapely Console (Develop new → template → Git). Scrapely creates a repository in your account, pushes this code, and builds the Actor. Every push to your repository triggers a new build.