mrkeyoor.com_
Mon 09 Nov 05:50 UTC
Dataevaluationupdated 31 Oct 2026

crawlee review

Crawlee is a TypeScript and JavaScript library for collecting website data through HTTP requests or browser automation. Its documented features include persistent URL queues, storage and configurable retries.

+61stars / 7d
Verdict

Evaluate Crawlee when persistent queues, retries and storage justify a framework around your extraction logic. Our recorded checkout built successfully, but its test command failed with 126 reported failures out of 2,004 tests. Pin your intended version and run a bounded crawl on the intended host before relying on its browser operation or upstream bot-protection claims.

We ran it

Lab card: what happened when we ran crawleeScreenshot of crawlee (crawlee.dev)
Install✓ · 191s1 packages · 1295 MB
Build✓ · 38s
Tests✗ · 623s1842 passed · 126 failed · 36 skipped of 2004 (vitest)
Repo2992 files~124,770 lines of source · 224.1 MB · 9 CI workflows · tests dir

Answers from our run

Does crawlee build from source?

Dependencies installed in 191 seconds (1 packages), and the build succeeded in 38 seconds. We cloned commit 438e341 into a clean Debian container with 3 CPUs and no project-specific setup.

Do crawlee's tests pass?

No. The project's own test command finished in 623 seconds and reported 1842 passed, 126 failed, 36 skipped (vitest).

Who should not use crawlee?

Teams unable to meet the requirements of their selected Crawlee version. The current README requires Node.js 22.13 or higher.

What are the alternatives to crawlee?

Playwright, Scrapy. Evaluate Crawlee when persistent queues, retries and storage justify a framework around your extraction logic.

SetupN/AInstallation and build succeeded, but consumer setup ease, the exact runtime and successful browser operation were not established.
Docs4/5On the body's explicit 1-5 rubric, the supplied README clearly explains installation, local storage and browser integration. The full documentation and example execution were not verified.
CommunityN/AThe supplied activity records show upstream work but do not establish support quality, response times or available support capacity.
MaturityN/ARelease notes document maintenance, but the failed repository test command and absence of a representative crawl leave production reliability unassessed.

Discussed on

  1. hnShow HN: Crawlee – Web scraping and browser automation library for Node.js282 points
  2. hnShow HN: Crawlee for Python – a web scraping and browser automation library254 points
  3. hnShow HN: Crawlee Cloud Self-hosted platform for running Crawlee and Apify actor4 points

Who it’s for

JavaScript and TypeScript developers evaluating persistent queues and saved output for recurring collection jobs.
Teams that need HTTP and browser crawling within one library and can validate their selected configuration.

Who it’s NOT for

Teams unable to meet the requirements of their selected Crawlee version. The current README requires Node.js 22.13 or higher.
Developers expecting the manually installed Crawlee package alone to include Playwright; the README requires a separate installation.
Buyers requiring demonstrated success against bot protections. Our repository run did not measure that outcome.

Setup reality

Our recorded October 2, 2026 run at commit 438e341 installed successfully in 191 seconds and built successfully in 38 seconds. The test command failed with exit code 1 after 623 seconds. Vitest reported 1,842 passed, 126 failed and 36 skipped out of 2,004 tests. These are reported summary counts, not a measurement of code coverage.

The sandbox configuration lists 3 CPUs, 8 GB RAM and image lab-node:22. That label does not establish the exact runtime version. The record reports 1 dependency and 1,295 MB on disk; the dependency count is not a verified transitive inventory. Browser and memory-related failure filenames appear in the supplied tail, but the underlying exceptions and causes are not established.

The current README requires Node.js 22.13 or higher. The supplied primary extracts do not establish the requirements attached to measured commit 438e341. Check the requirements for the version you intend to install. The README documents local storage and a manual browser example that installs Playwright separately. Our run did not separately validate that example or a representative production crawl.

When Crawlee earns its place

Crawlee is worth evaluating when a collection job needs to keep unfinished URLs and save results between runs. Its README documents a persistent URL queue, pluggable storage and configurable retries. Those features give a recurring crawler a common structure around the extraction code.

The README describes HTTP and browser crawling through one interface. Its browser example puts extraction logic in a request handler. The adoption question is whether your job needs that surrounding crawl management. A short browser script may need less machinery.

What happened when we ran it

Crawlee built in 38 seconds in our sandbox, but 126 tests failed.

This was the recorded October 2, 2026 run at commit 438e341, not a new test. Installation succeeded in 191 seconds. The test command exited with code 1 after 623 seconds, with Vitest reporting 1,842 passed, 126 failed and 36 skipped out of 2,004 tests. Many tests executed, but these summary counts do not establish code coverage or exhaustive unique coverage.

The supplied tail names failures in Puppeteer crawler and launcher cases, Playwright launcher cases, browser-pool behavior and memory information. It does not show the underlying exceptions. Those filenames identify places to investigate; they do not establish whether missing browser binaries, sandbox restrictions or Crawlee defects caused the failures.

The configured sandbox had 3 CPUs, 8 GB RAM and image label lab-node:22. The exact runtime version is not established by that label. The installation record reports 1 dependency and 1,295 MB on disk. The dependency entry is not a verified inventory of transitive packages or a basis for estimating a consumer project's installation cost.

The checkout scan recorded monorepo workspaces, a tests directory and 9 CI workflow files. It detected no Dockerfile. The current README advertises deployment Dockerfiles, so inspect the deployment path you intend to use rather than treating the checkout scan as a finding about every documented option.

Our run did not measure crawl throughput, extracted-data quality or success against protected sites. A successful build also does not establish that a browser can launch on your intended host.

Local storage and browser setup

The README's example uses PlaywrightCrawler, reads a page title, saves it through Dataset.pushData and adds discovered links with enqueueLinks. It documents ./storage under the working directory as the default storage location. The README also says Crawlee runs outside Apify's platform; it does not present an Apify account as a prerequisite for this local workflow.

This describes the supplied example. Our repository run did not separately execute or validate it.

The manual installation adds both Crawlee and Playwright because Playwright is not bundled with Crawlee. Check the selected browser's deployment requirements and exercise browser startup on the intended host.

For a recurring job, define which URLs belong in the crawl before enabling link discovery. Start with a bounded set, inspect saved records and review failed requests. These are proposed validation steps, not checks completed in our recorded run.

Proxy rotation and session management are documented features. They do not demonstrate that Crawlee supplies a proxy service or that a target will accept your traffic. The README's bot-protection claims remain upstream claims that our run did not verify.

Check the requirements for your selected version

The current README specifies Node.js 22.13 or higher. The supplied primary extracts do not establish the version-specific requirements of measured commit 438e341, and the sandbox image label does not establish its exact runtime. Check the requirements attached to the version you install.

Crawlee documents HTTP crawling with HTML parsers and browser crawling with Playwright or Puppeteer. If the required information is present in the HTTP response, evaluate the HTTP path first. If extraction requires JavaScript rendering, evaluate the browser path. We have not measured a performance difference between those choices.

Activity does not resolve the test result

The supplied repository metadata records a last push on October 31, 2026. The issue listing includes an October 30 report about multiple-cookie response handling in AdaptivePlaywrightCrawler with Firefox. The supplied issue listing does not establish its resolution. It also does not establish whether your selected release is affected.

The supplied latest-release record identifies v3.18.2, dated September 29, 2026. Its notes describe fixes for a browser-pool page close that never settles and a timed-out task's context leaking into the pool loop. These notes document upstream changes; they do not establish the cause or resolution of our recorded failures. The measured checkout remains commit 438e341, not a verified test of release v3.18.2.

Alternatives depend on the job

Playwright is a framework for web automation and testing. Its README documents a library for browser automation scripts. Evaluate that library when browser interaction is the main task and you can manage the surrounding crawl workflow yourself. This recommendation concerns scope; no comparative run here establishes lower disk use or faster execution.

Scrapy is a Python framework for extracting structured website data. Its README makes it a relevant candidate when extraction and downstream processing belong in Python. We did not run a comparison between these projects.

What the documentation score covers

Documentation scores 4/5 on an editorial scale: 1 means no usable orientation, 2 means basic orientation with major gaps, 3 means useful setup and feature explanations with material gaps, 4 means clear setup, storage and integration explanations within the reviewed extract, and 5 requires independently verified coverage of the documented paths. The supplied README supports 4 through its installation instructions, storage default and browser-integration example. This is a judgment about that extract, not an audit of the full documentation site or proof that its examples work in our sandbox.

Setup ease, community support and production maturity remain unassessed. The successful installation and build are recorded findings, but the evidence does not establish consumer setup ease, support quality or recurring workload reliability.

Before adopting Crawlee, pin the intended version and run a bounded crawl that exercises your chosen crawler and storage path. Inspect saved records, failed requests and browser startup where applicable.

Alternatives

ProjectWhat it isPick it when
Playwright gh↗A framework for web automation and testing.Evaluate its library when browser interaction is the main task and you can manage the surrounding crawl workflow yourself.
Scrapy gh↗A Python framework for extracting structured website data.Evaluate it when your extraction and downstream processing belong in Python.

What people are saying

  1. [github-trending] apify/crawlee

Sources

  1. Crawlee README
  2. Playwright README
  3. Scrapy README
  4. Crawlee activity
  5. Crawlee release v3.18.2

More data reviews

rerun · telegraf · rocksdb · redash · akshare · DB-GPT · the whole board →