Page Object pattern for Scrapy
Project description
scrapy-poet is the web-poet Page Object pattern implementation for Scrapy. scrapy-poet allows to write spiders where extraction logic is separated from the crawling one. With scrapy-poet is possible to make a single spider that supports many sites with different layouts.
Read the documentation for more information.
License is BSD 3-clause.
Documentation: https://scrapy-poet.readthedocs.io
Source code: https://github.com/scrapinghub/scrapy-poet
Issue tracker: https://github.com/scrapinghub/scrapy-poet/issues
Quick Start
Installation
pip install scrapy-poet
Requires Python 3.8+ and Scrapy >= 2.6.0.
Usage in a Scrapy Project
Add the following inside Scrapy’s settings.py file:
DOWNLOADER_MIDDLEWARES = {
"scrapy_poet.InjectionMiddleware": 543,
"scrapy.downloadermiddlewares.stats.DownloaderStats": None,
"scrapy_poet.DownloaderStatsMiddleware": 850,
}
SPIDER_MIDDLEWARES = {
"scrapy_poet.RetryMiddleware": 275,
}
REQUEST_FINGERPRINTER_CLASS = "scrapy_poet.ScrapyPoetRequestFingerprinter"
Developing
Setup your local Python environment via:
pip install -r requirements-dev.txt
pre-commit install
Now everytime you perform a git commit, these tools will run against the staged files:
black
isort
flake8
You can also directly invoke pre-commit run –all-files or tox -e linters to run them without performing a commit.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for scrapy_poet-0.22.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aec07ae246fc0b971434bf071cf53f5b3bd6fb65c16e8a7824a3b8663f5bd253 |
|
MD5 | f2cd8533db61108fd875de8b667990a4 |
|
BLAKE2b-256 | 2a9fefc8092d2e397d956c897840b4be7aefcb79129492718f19f253f4fc0136 |