Crawlee is a web scraping and browser automation framework by Apify — build reliable crawlers with automatic anti-blocking.
What You Get for Free
- Auto-rotation — proxy rotation, browser fingerprinting
- Request queue — resume-able crawling with persistence
- Auto-scaling — adjusts concurrency based on system resources
- Multiple crawlers — HTTP (Cheerio/JSDOM), Browser (Playwright/Puppeteer)
- Session management — maintain cookies across requests
- Error handling — automatic retries with exponential backoff
- Storage — datasets and key-value stores for results
- TypeScript — full type safety
- Apify integration — deploy crawlers to Apify cloud
Quick Start
npx crawlee create my-crawler
import { PlaywrightCrawler } from 'crawlee'
const crawler = new PlaywrightCrawler({
async requestHandler({ page, request, enqueueLinks }) {
const title = await page.title()
const data = await page.$$eval('.product', els =>
els.map(el => ({
name: el.querySelector('h2')?.textContent,
price: el.querySelector('.price')?.textContent,
}))
)
await Dataset.pushData(data)
await enqueueLinks({ globs: ['https://example.com/products/*'] })
},
maxRequestsPerCrawl: 100,
})
await crawler.run(['https://example.com/products'])
Why Developers Switch from Scrapy/Puppeteer
Scrapy can't handle JavaScript, Puppeteer has no built-in queue or storage:
- Auto anti-blocking — fingerprint rotation, session management
- Browser + HTTP — use Playwright for JS sites, Cheerio for static
- Persistent queue — resume crawls after crashes
- Type-safe — TypeScript prevents common scraping bugs
A scraping project using raw Puppeteer got blocked after 200 requests. After Crawlee: same target, 50K requests, auto-proxy rotation and fingerprint management — zero blocks.
Need Custom Data Solutions?
I build production-grade scrapers and data pipelines for startups, agencies, and research teams.
Browse 88+ ready-made scrapers on Apify → — Reddit, HN, LinkedIn, Google, Amazon, and more.
Custom project? Email me: spinov001@gmail.com — fast turnaround, fair pricing.
Top comments (0)