Skip to main content

Crawlerflow

PyPI version Python versions License Downloads Wheel Documentation

Crawlerflow is a declarative, YAML-based workflow engine for browser automation and web scraping. Workflows describe what should happen; adapters and steps decide how it happens.

📖 Read the documentation

Installation

pip install crawlerflow

Include browser support to run Pydoll-backed workflows:

pip install "crawlerflow[browser]"

Current foundation

  • Versioned YAML workflow loading and validation
  • Browser-independent adapter contract and a lazy-starting Pydoll implementation
  • Extensible step registry
  • Isolated plugin API with typed YAML settings, lifecycle hooks, steps, filters, and subscribers
  • Async workflow executor and event bus
  • Variable interpolation and a built-in expression engine
  • Per-run today and now date variables
  • Nested foreach, foreach_date, foreach_select, and declarative if control flow
  • Reusable parameterized workflow macros
  • Per-step retry and continue/fail error policies
  • JSON Lines workflow, step, retry, and request event logging
  • Built-in navigation, interaction, cookies, downloads, screenshots, and selective HTML output
  • run, validate, list-steps, list-plugins, and doctor CLI commands

Development

python -m pip install -e ".[dev]"
pytest
crawlerflow validate examples/basic.yaml
crawlerflow run examples/basic.yaml

Run multiple workflows sequentially by supplying more paths. Execution stops at the first failed workflow:

crawlerflow run examples/first-site.yaml examples/second-site.yaml

A directory argument discovers its directly contained .yaml and .yml files and runs them in alphabetical order:

crawlerflow run examples

Use asynchronous mode to run every supplied workflow in parallel. All workflows are allowed to finish; the command exits with code 1 if any workflow fails:

crawlerflow run --mode async examples/first-site.yaml examples/second-site.yaml

Directory discovery can also be combined with parallel execution:

crawlerflow run --mode async examples

Add --progress to display a live progress bar based on the total workflow count. The bar advances as each workflow succeeds or fails in both sequential and asynchronous modes:

crawlerflow run --mode async --progress examples

Use --concurrency (or -c) to limit how many workflows run at the same time in asynchronous mode. This avoids starting every HTTP client or browser session simultaneously:

crawlerflow run --mode async --concurrency 8 --progress examples

Omitting the option preserves unlimited parallel execution. --concurrency accepts positive integers and can only be used with --mode async.

Install browser support and select Pydoll in a workflow:

python -m pip install -e ".[browser,dev]"
browser:
  engine: pydoll
  headless: true

Browser-free workflows omit the browser section. Applications can also inject another BrowserAdapter into WorkflowRunner. See docs/http-requests.md for direct HTTP requests and shortened map URL coordinate resolution.

External extensions can register entry points under crawlerflow.plugins; workflows activate only the plugins they list. See docs/plugins.md and the installable examples/plugins/example package for the plugin contract, discovery command, and packaging example.

Metadata

Release files for crawlerflow 0.7.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for crawlerflow 0.7.0
File Size Uploaded
crawlerflow-0.7.0.tar.gz 93.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for crawlerflow 0.7.0
File Interpreter ABI Platform
crawlerflow-0.7.0-py3-none-any.whl Python 3 none any Details

Total release size: 152.2 kB

Release files / crawlerflow-0.7.0.tar.gz

Download URL crawlerflow-0.7.0.tar.gz
Size 93.3 kB
Tags Source
SHA-256 checksum
How to use checksums
6da9c62e47c02536aeaead7c8bcb90f0e449dace618ac403276d4e59475c7905
BLAKE2b-256 checksum
How to use checksums
047cb25b8e8c0c63ed716e36671528f471797030ba96d9025d7a84ac777d7f8c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

Release files / crawlerflow-0.7.0-py3-none-any.whl

Download URL crawlerflow-0.7.0-py3-none-any.whl
Size 58.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6cd3ad6711aea904c0b218a7af741608978ad926983061adf4e9fb7060381e9e
BLAKE2b-256 checksum
How to use checksums
54fcccf5c96b130315617eb48069cd2d5bb0e2daf460354dcfecc0f5b4678be6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.7.0 This release

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page