Skip to main content

Shared Scrapy base spider + typed service configuration registry

Project description

scrapyx-core

Shared base spider and typed service configuration utilities for Scrapy projects.

What you get

  • BaseServiceSpider — production-ready base class that:

    • exposes service_config, captcha_needed, site_key
    • collects items/errors, has yield_empty_item()
    • initializes from a typed Service registry (from settings / optional file)
  • ServiceConfig / ServiceRegistry — Pydantic models for strict config.

  • load_registry_from_settings() — merges settings["SERVICES"] with optional JSON file pointed by SCRAPYX_SERVICES_FILE.

  • validators — functions you can call (or wire from an extension) to fail fast in CI/Scrapyd.

Minimal usage

# in your spiders
from scrapyx_core.base import BaseServiceSpider

class InspectionSpider(BaseServiceSpider):
    name = "inspection"
    # use self.service_config / self.captcha_needed / self.site_key

Optionally, set SCRAPYX_SERVICES_FILE=/path/to/services.json to load/merge external config.

This package is middleware-agnostic and pairs well with scrapyx-mw (add-on + middlewares).

Install and optional extras

Base usage (BaseServiceSpider, ServiceRegistry, config) requires only the default install:

uv add scrapyx-core
# or: pip install scrapyx-core

Extensions that need extra dependencies:

  • WebhookExtension (webhook callbacks on spider close): uv add scrapyx-core[webhook] or pip install scrapyx-core[webhook]
  • CompletionPublisherExtension (FastStream/RabbitMQ/Redis): uv add scrapyx-core[completion] or pip install scrapyx-core[completion]
  • Both: uv add scrapyx-core[webhook,completion]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scrapyx_core-0.2.0.tar.gz (119.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

scrapyx_core-0.2.0-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

Details for the file scrapyx_core-0.2.0.tar.gz.

File metadata

  • Download URL: scrapyx_core-0.2.0.tar.gz
  • Upload date:
  • Size: 119.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for scrapyx_core-0.2.0.tar.gz
Algorithm Hash digest
SHA256 4838a90aa83c5404affde8bf0d1fc5f80bc4dbe9bff3f838021171284ca8ed1d
MD5 f4cb005c534370bdb4dbbedade243ec4
BLAKE2b-256 4cbf9d4007e3c0815b0c74cad59a7ee63c7cebdcfa66c93fec5798c9e3533a90

See more details on using hashes here.

Provenance

The following attestation bundles were made for scrapyx_core-0.2.0.tar.gz:

Publisher: release.yml on ArmanAvanesyan/scrapyx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scrapyx_core-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: scrapyx_core-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 11.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for scrapyx_core-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 26c066988108fee5b97e845ef94262b695d673bd242a20a96fc9e19ac6c88ae6
MD5 638ae46c238dd7772cc6773670f0e820
BLAKE2b-256 c9a0a0d1055d8939ed9660f281dc14f8c55fe292ba0a24c9ce1a10c4e0abd5ec

See more details on using hashes here.

Provenance

The following attestation bundles were made for scrapyx_core-0.2.0-py3-none-any.whl:

Publisher: release.yml on ArmanAvanesyan/scrapyx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page