Skip to main content

Redis-based components for Scrapy

Project description

This is a initial work on Scrapy-Redis integration, not production-tested. Use it at your own risk!

Features:

  • Distributed crawling/scraping

  • Distributed post-processing

Requirements:

  • Scrapy >= 0.13 (development version)

  • redis-py (tested on 2.4.9)

  • redis server (tested on 2.2-2.4)

Available Scrapy components:

  • Scheduler

  • Duplication Filter

  • Item Pipeline

Usage

In your settings.py:

# enables scheduling storing requests queue in redis
SCHEDULER = "scrapy_redis.scheduler.Scheduler"

# don't cleanup redis queues, allows to pause/resume crawls
SCHEDULER_PERSIST = True

# Schedule requests using a priority queue. (default)
SCHEDULER_QUEUE_CLASS = 'scrapy_redis.queue.SpiderPriorityQueue'

# Schedule requests using a queue (FIFO).
SCHEDULER_QUEUE_CLASS = 'scrapy_redis.queue.SpiderQueue'

# Schedule requests using a stack (LIFO).
SCHEDULER_QUEUE_CLASS = 'scrapy_redis.queue.SpiderStack'

# store scraped item in redis for post-processing
ITEM_PIPELINES = [
    'scrapy_redis.pipelines.RedisPipeline',
]

Running the example project

You can test the funcionality following the next steps:

  1. Setup scrapy_redis package in your PYTHONPATH

  2. Run the crawler for first time then stop it:

    $ cd example-project
    $ scrapy crawl dmoz
    ... [dmoz] ...
    ^C
  3. Run the crawler again to resume stopped crawling:

    $ scrapy crawl dmoz
    ... [dmoz] DEBUG: Resuming crawl (9019 requests scheduled)
  4. Start one or more additional scrapy crawlers:

    $ scrapy crawl dmoz
    ... [dmoz] DEBUG: Resuming crawl (8712 requests scheduled)
  5. Start one or more post-processing workers:

    $ python process_items.py
    Processing: Kilani Giftware (http://www.dmoz.org/Computers/Shopping/Gifts/)
    Processing: NinjaGizmos.com (http://www.dmoz.org/Computers/Shopping/Gifts/)
    ...

That’s it.

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

scrapy-redis-0.3.tar.gz (5.5 kB view details)

Uploaded Source

File details

Details for the file scrapy-redis-0.3.tar.gz.

File metadata

  • Download URL: scrapy-redis-0.3.tar.gz
  • Upload date:
  • Size: 5.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for scrapy-redis-0.3.tar.gz
Algorithm Hash digest
SHA256 85aa174c6050f4f34927204a04ea031b151fb203d67b0520f5d8d88b023b6f3c
MD5 7abd77528c568c887e8da4456eafe877
BLAKE2b-256 4aa54f2ed2a2590c8a6be8c2130f76f4f172ad58137173877e1e087ff687ebf8

See more details on using hashes here.

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