Skip to main content

System Requirements

Python

Version 3.9 or higher

Git

For cloning the repository

Disk Space

~500 MB (dependencies + browser)
scrapai uses SQLite by default (no database installation required). For production scale, PostgreSQL is recommended.

Supported Platforms

  • Linux (Ubuntu, Debian, CentOS, Fedora, Arch)
  • macOS (Intel and Apple Silicon)
  • Windows (10/11 via WSL only)

Installation Steps

1

Install Python 3.9+

Verify installation:
2

Clone the repository

Clone to a location with write permissions. Avoid system directories like /usr/local/.
3

Run setup

The setup process will:
1

Create virtual environment

Creates a .venv directory with isolated Python packages
2

Install dependencies

Installs Scrapy, SQLAlchemy, Alembic, newspaper4k, trafilatura, Playwright, and more
3

Install Playwright Chromium

Downloads Chromium browser for JavaScript rendering and Cloudflare bypass
Linux users: If Chromium fails to launch later, you may need to install system dependencies:
This requires sudo because it installs system packages (fonts, libraries, etc.).
4

Create .env file

Copies .env.example to .env with default SQLite configuration
5

Initialize database

Runs Alembic migrations to create the database schema
6

Configure Claude Code permissions

If using AI agents, sets up permission rules in .claude/settings.local.json
4

Verify installation

You should see:
If any checks fail, re-run ./scrapai setup. If issues persist, see Troubleshooting below.

Configuration

Database Configuration

scrapai uses SQLite by default (no setup required). For production, you can transfer your existing data to PostgreSQL:
1

Get PostgreSQL

Use a managed service (AWS RDS, DigitalOcean, Supabase) or install locally:
2

Update .env

3

Run migrations and transfer

Proxy Configuration

scrapai supports smart proxy escalation. Configure proxies in .env:
Proxies are optional. scrapai starts with direct connections and only uses proxies when needed (403/429 errors). It learns which domains require proxies and remembers for future crawls.

S3 Storage Configuration

For automatic uploads to S3-compatible storage (Hetzner, DigitalOcean Spaces, Wasabi, Backblaze, etc.):

Troubleshooting

Error: The virtual environment was not created successfullySolution:
Error: Error: browserType.launch: Host system is missing dependenciesSolution: Install system dependencies:
This installs required system packages (fonts, libraries, etc.).
Error: PermissionError: [Errno 13] Permission denied: './data'Solution: Change the data directory in .env:
Or fix permissions:
Error: sqlalchemy.exc.OperationalError: could not connect to serverSolutions:
  1. Verify PostgreSQL is running:
  2. Check your DATABASE_URL in .env
  3. Test connection:
  4. Check PostgreSQL logs:
Error: bash: ./scrapai: No such file or directorySolution: Make the script executable:
Error: ERROR: This package requires Python 3.9 or higherSolution: Install a newer Python version:

Upgrading

To upgrade to the latest version:
Always backup your database before upgrading:

Uninstallation

To completely remove scrapai:

Next Steps

Quick Start

Build your first scraper in 5 minutes

CLI Reference

Complete command reference

Configuration

Advanced configuration options

GitHub Repository

View source code and report issues