Instruction Manual · Apple silicon · macOS Tahoe

D4Vinci/Scrapling Instruction Manual

Python scraping framework with adaptive parsers, HTTP/browser/stealth fetchers, concurrent spiders, CLI, and MCP/agent integrations.

Beginner-friendlyCopy-paste examplesFirst-party sources checked

What D4Vinci/Scrapling is—in plain language

Python scraping framework with adaptive parsers, HTTP/browser/stealth fetchers, concurrent spiders, CLI, and MCP/agent integrations.

Mental model: This repository provides a directly runnable command or package. You give the command an input, it performs the documented workflow, and it returns files, terminal output, a local interface, or a remote result.
Interfaceslibrary, CLI, MCP
Primary languagePython
Typical useBuild resilient scraping/crawling pipelines, including JS-heavy pages, while exposing web retrieval capabilities to agents.

Your first 15 minutes

  1. Complete the linked Installation Guide and its verification step.
  2. Create a disposable test folder or use non-sensitive sample data.
  3. Run the small example below and observe what files, ports, or prompts appear.
  4. Read the result before approving writes, network calls, account access, or costs.
  5. Only then repeat the workflow with a real project.
Starter workflow
python - <<'PY'
from scrapling.fetchers import Fetcher
page = Fetcher.get('https://example.com')
print(page.css('h1::text').get())
PY

Complete indexed functionality map

Each card below corresponds to a component identified in the repository research. Open a component record for its path, purpose, capabilities, dependencies, risks, and relationships.

Upstream feature-by-feature guide

These capabilities are derived from the current first-party README and supporting documentation. Names follow upstream terminology so you can search the source documentation precisely.

Upstream capability

Spiders - A Full Crawling Framework

Upstream treats this as a distinct part of D4Vinci/Scrapling. In plain language, use this area when your task concerns spiders - a full crawling framework. Begin with the documented default, test it on disposable input, and open the source section for its current options and limitations.

Upstream capability

Adaptive Scraping & AI Integration

Upstream treats this as a distinct part of D4Vinci/Scrapling. In plain language, use this area when your task concerns adaptive scraping & ai integration. Begin with the documented default, test it on disposable input, and open the source section for its current options and limitations.

Upstream capability

High-Performance & battle-tested Architecture

Upstream treats this as a distinct part of D4Vinci/Scrapling. In plain language, use this area when your task concerns high-performance & battle-tested architecture. Begin with the documented default, test it on disposable input, and open the source section for its current options and limitations.

Upstream capability

Developer/Web Scraper Friendly Experience

Upstream treats this as a distinct part of D4Vinci/Scrapling. In plain language, use this area when your task concerns developer/web scraper friendly experience. Begin with the documented default, test it on disposable input, and open the source section for its current options and limitations.

Upstream capability

Getting Started

Upstream treats this as a distinct part of D4Vinci/Scrapling. In plain language, use this area when your task concerns getting started. Begin with the documented default, test it on disposable input, and open the source section for its current options and limitations.

Upstream capability

Basic Usage

Upstream treats this as a distinct part of D4Vinci/Scrapling. In plain language, use this area when your task concerns basic usage. Begin with the documented default, test it on disposable input, and open the source section for its current options and limitations.

Upstream capability

Spiders

Upstream treats this as a distinct part of D4Vinci/Scrapling. In plain language, use this area when your task concerns spiders. Begin with the documented default, test it on disposable input, and open the source section for its current options and limitations.

Upstream capability

Advanced Parsing & Navigation

Upstream treats this as a distinct part of D4Vinci/Scrapling. In plain language, use this area when your task concerns advanced parsing & navigation. Begin with the documented default, test it on disposable input, and open the source section for its current options and limitations.

Upstream capability

CLI & Interactive Shell

Upstream treats this as a distinct part of D4Vinci/Scrapling. In plain language, use this area when your task concerns cli & interactive shell. Begin with the documented default, test it on disposable input, and open the source section for its current options and limitations.

Upstream capability

Performance Benchmarks

Upstream treats this as a distinct part of D4Vinci/Scrapling. In plain language, use this area when your task concerns performance benchmarks. Begin with the documented default, test it on disposable input, and open the source section for its current options and limitations.

Upstream capability

Text Extraction Speed Test (5000 nested elements)

Upstream treats this as a distinct part of D4Vinci/Scrapling. In plain language, use this area when your task concerns text extraction speed test (5000 nested elements). Begin with the documented default, test it on disposable input, and open the source section for its current options and limitations.

Upstream capability

Element Similarity & Text Search Performance

Upstream treats this as a distinct part of D4Vinci/Scrapling. In plain language, use this area when your task concerns element similarity & text search performance. Begin with the documented default, test it on disposable input, and open the source section for its current options and limitations.

How to use the main workflows

1

Choose the smallest relevant function

Start with one capability card instead of asking the repository to do everything at once. This makes permissions, inputs, and output easier to understand.

2

Prepare a disposable input

Use a sample URL, copied repository, test document, or sandbox account. Keep production credentials and irreplaceable files out of the first run.

3

Run, observe, and stop

Watch Terminal output or the host application's activity view. If the behavior differs from the README, stop with Control + C or cancel inside the host before retrying.

4

Inspect the result

Check generated files, diffs, API responses, logs, or previews. Never assume “command finished” means the result is correct.

5

Save a repeatable recipe

Record the working command and non-secret configuration in your project's README. Store secrets in the documented environment file or password manager.

Copy-paste recipes from upstream documentation

These examples are selected from the repository's first-party documentation. Replace obvious placeholders, keep quotation marks intact, and run them only in the context indicated by the surrounding explanation.

Spiders
from scrapling.spiders import Spider, Request, Response
from scrapling.fetchers import FetcherSession, AsyncStealthySession

class MultiSessionSpider(Spider):
    name = "multi"
    start_urls = ["https://example.com/"]
    
    def configure_sessions(self, manager):
        manager.add("fast", FetcherSession(impersonate="chrome"))
        manager.add("stealth", AsyncStealthySession(headless=True), lazy=True)
    
    async def parse(self, response: Response):
        for link in response.css('a::attr(href)').getall():
            # Route protected pages through the stealth session
            if "protected" in link:
                yield Request(link, sid="stealth")
            else:
                yield Request(link, sid="fast", callback=self.parse)  # explicit callback
Official example
from scrapling.spiders import Spider, Response

class MySpider(Spider):
  name = "demo"
  start_urls = ["https://example.com/"]

  async def parse(self, response: Response):
      for item in response.css('.product'):
          yield {"title": item.css('h2::text').get()}

MySpider().start()
Spiders
from scrapling.spiders import ShopifySpider

class MyStore(ShopifySpider):
    target_website = "example.com"

result = MyStore().start()  # Every product in the store, one item per variant

Configuration, accounts, and files

Configuration files

None documented

A configuration file changes behavior without changing source code. Make one change at a time and keep a backup before editing JSON, TOML, YAML, or environment files.

Important directories

None documented

Paths identify where the relevant implementation or generated files live. Paths beginning with ~ are inside your home folder.

Credentials

None documented

Prefer temporary, least-privileged credentials. Never commit .env, tokens, cookies, private keys, or session exports.

External services

None documented

Check pricing, data retention, rate limits, and account permissions before enabling optional integrations.

Safe operating habits

  • Use test data first and keep a current backup or Git commit.
  • Read commands before pasting. A README is useful evidence, not a substitute for judgment.
  • Review agent-generated file changes with git diff before committing.
  • Keep local services bound to 127.0.0.1 unless you intentionally secure and expose them.
  • Do not give plugins or MCP servers broader filesystem, browser, GitHub, or cloud access than their current task requires.
  • Confirm API costs and model names before running large batches.
  • Stop and investigate repeated authentication failures instead of pasting a token into multiple places.

Reference and source trail

The manual reflects first-party files checked on August 18, 2026. It explains the indexed repository rather than promising that every optional third-party integration is available or safe.