Andrey Rakhmatullin
7bef98b4f1
Release notes for 2.14.0 ( #7035 )
...
* Initial release notes for 2.14.0, up to ed63fa9 .
* Cover 2.14 in the release notes up to 393d715 .
* Cover 2.14 in the release notes up to eb49647 .
* Cover 2.14 in the release notes up to 426aafd .
* Cover 2.14 in the release notes up to 1e8de24 .
* Cover 2.14 in the release notes up to 5a7e132 .
* Bump sphinx-lint.
* Finalize the 2.14.0 release notes.
* Drop more of the old versionadded directives.
* Address feedback.
2026-01-05 14:51:05 +05:00
Andrey Rakhmatullin
d1bd8eb49f
Async API for download handlers. ( #7164 )
2025-12-31 19:03:16 +01:00
Andrey Rakhmatullin
a2463325db
Allow Crawler.crawl_async() without asyncio. ( #7202 )
2025-12-31 18:33:59 +01:00
Adham 3llam
9381ad893d
Remove outdated version marker directives (< 2.8.0) from documentation ( #7198 )
2025-12-22 10:00:39 +01:00
Andrey Rakhmatullin
180ca39b23
Deprecate returning Deferreds from pipeline methods ( #7179 )
...
* Add tests for exceptions in pipelines.
* Deprecate returning Deferreds from pipeline process_item().
* Deprecate returning Deferreds from pipeline {open,close}_spider().
* Update the custom pipeline docs.
2025-12-16 13:35:07 +05:00
Andrey Rakhmatullin
c49ae2115a
Refactor MediaPipeline.process_item() to async def ( #7177 )
2025-12-15 10:02:04 +01:00
Andrey Rakhmatullin
588f3d4f65
Remove docs mentioning deprecated spider attrs. ( #7176 )
2025-12-15 09:51:56 +01:00
Thalison Fernandes
d8583a89c7
Change default priority queue to DownloaderAwarePriorityQueue ( #6940 )
...
* Change default priority queue to DownloaderAwarePriorityQueue
* Fix documentation building
* Simplify test_start_already_running_exception changes.
* Modernize the test.
* Fix TestEngineCloseSpider.
* Fix typing.
* Remove special slot=None handling.
---------
Co-authored-by: Andrey Rakhmatullin <wrar@wrar.name>
2025-12-11 11:25:17 +01:00
Andrey Rakhmatullin
9bfa58e36c
Deprecate send_catch_log_deferred(). ( #7161 )
...
* Add a test for not having pending tasks.
* Refactor TestFeedExporterSignals.
* Refactor FeedExporter.close_spider().
* More engine start/stop robustness.
* Refactor send_catch_log_async(), deprecate send_catch_log_deferred().
* Add pragma: no cover.
* Warn on signal handlers returning a Deferred.
* Make _pending_close_coros an instance attribute.
* Remove an unused function.
* Remove the outdated TODO.
2025-12-10 14:42:49 +05:00
Andrey Rakhmatullin
5105f55a98
Add `DownloaderMiddlewareManager.download_async()`, deprecate returning Deferreds from downloader mws ( #7069 )
...
* Restore coverage in MiddlewareManager spider arg handling.
* Move MiddlewareManager._warn_spider_arg() tests.
* Add DownloaderMiddlewareManager.download_async().
* Make download_func async.
* Inline MiddlewareManager._warn_spider_arg().
* Deprecate returning deferreds from downloader middlewares.
* Update the downloader mw doc about async def.
* Use global_object_name() instead of repr().
* Update docs/topics/downloader-middleware.rst
Co-authored-by: Adrián Chaves <adrian@chaves.io>
* Update downloader-middleware.rst
---------
Co-authored-by: Adrián Chaves <adrian@chaves.io>
2025-12-09 20:07:36 +05:00
Andrey Rakhmatullin
0adc561348
Add a list of remaining Deferred APIs. ( #7146 )
2025-11-27 20:13:04 +05:00
Andrey Rakhmatullin
4cb0144b39
Merge tag '2.13.4'
...
Bump version: 2.13.3 → 2.13.4
2025-11-17 16:47:54 +05:00
Andrey Rakhmatullin
2f62ab532d
Bump version: 2.13.3 → 2.13.4
2025-11-17 16:30:37 +05:00
Andrey Rakhmatullin
31a9c03c24
Release notes for 2.13.4. ( #7144 )
...
* Release notes for 2.13.4.
* Formatting.
2025-11-17 16:30:04 +05:00
Adrián Chaves
d091256c58
Remove the deprecated sphinx-hoverxref ( #6922 )
2025-11-14 15:39:21 +05:00
Andrey Rakhmatullin
804ae167df
Update tool versions ( #7127 )
2025-10-27 14:11:31 +01:00
Andrey Rakhmatullin
61b4befc60
Remove code deprecated in 2.12.0 ( #7126 )
...
* Remove smaller things.
* Remove from_settings().
* Remove old MediaPipeline init code.
* Cleanup.
* Typo.
2025-10-27 17:14:38 +05:00
Andrey Rakhmatullin
d414d393d4
Remove Python 3.9 support ( #7121 )
2025-10-27 12:37:49 +01:00
Adrián Chaves
eb496470f1
Add missing doc deps for new examples ( #7116 )
2025-10-24 11:58:18 +02:00
Michael
a5bbeb2586
Expanded documentation for issue #6676 ( #6957 )
2025-10-24 10:30:33 +02:00
sstegmanbsd
2d073a9c0d
Fix typo in logging documentation ( #7109 )
2025-10-20 15:52:46 +02:00
Andrey Rakhmatullin
b49aa2fb0c
Deprecate scrapy.core.downloader.handlers.http. ( #7079 )
2025-10-16 13:15:07 +02:00
Sebastien Dionne
a02abdcf63
Fix typos in documentation ( #7076 )
2025-10-06 11:43:36 +02:00
Andrey Rakhmatullin
1c6ba00fd0
Move LogCounterHandler into a new extension ( #7046 )
...
* Move LogCounterHandler into Crawler.crawl().
* Add the LogCount extension.
* Update test_spider_custom_settings_log_level().
* Typo.
* Update docs.
2025-10-03 20:14:11 +05:00
Laerte Pereira
f2531808f3
docs: Add Edit on GitHub ( #7058 )
2025-09-28 13:16:47 +05:00
Andrey Rakhmatullin
2ad81a0ef8
Deprecate the spider arg of downloader middleware methods. ( #7037 )
...
* Deprecate the spider arg of downloader middleware methods.
* Add a test for deprecated spider args in downloader mws.
2025-09-02 21:51:47 +05:00
Andrey Rakhmatullin
ed63fa94d6
Deprecate spider args of middlewares and pipelines. ( #7006 )
...
* Deprecate spider args of spider middleware methods.
* Deprecate the spider arg of pipeline process_item().
* Fix a typing issue.
* Deprecate the spider arg of pipeline {open,close}_spider().
* Cleanup.
* Update docs.
* Add pragma: no cover to some deprecated code.
* More tests.
* More tests.
* More tests.
* Simplify _process_parallel().
2025-08-21 13:23:10 +05:00
Andrey Rakhmatullin
b68330811b
Deprecate spider arguments of StatsCollector methods ( #7011 )
2025-08-20 09:52:22 +02:00
Andrey Rakhmatullin
edba1ad572
Refactor RobotsTxtMiddleware to use async def process_request(). ( #6802 )
2025-08-18 18:40:46 +02:00
Felipe Benevolo
89f53f0555
Added download_async() to ExecutionEngine and test cases for download() and download_async() ( #6842 )
...
* added async_download()
* add case tests for ExecutionEngine download() and async_download()
* change async_download() to download_async() in Engine class and subsequent tests
* fixed reactor import in test_engine.py
* Simplify TestEngineDownloadAsync.
* replaced tearDown by self.engine.downloader.close in test_engine.py and replace @defer.inlineCallbacks by @inlineCallbacks
* Simplify ExecutionEngine.download().
* Remove an unneeded import.
* Refactor ExecutionEngine.download{,_async}() tests.
* Deprecate ExecutionEngine.download().
* Update doc examples to use download_async().
* Replace uses of download() with download_async().
* Fix test_downloadermiddleware_robotstxt.py.
* Remove a stray file.
---------
Co-authored-by: Andrey Rakhmatullin <wrar@wrar.name>
2025-07-27 23:17:51 +05:00
Andrey Rakhmatullin
552f2fb91e
Generic improvements related to reactorless tests ( #6968 )
...
* Skip doctests that import the reactor.
* Extract FTPDownloadHandler tests.
* Skip TestHttps2ClientProtocol via pytestmark.
* Replace some explicit reactor.callLater() in tests.
* Simplify TestRequestSendOrder._test_request_order().
2025-07-25 13:35:00 +05:00
Andrey Rakhmatullin
d9ef0350d8
Merge remote-tracking branch 'origin/2.13'
2025-07-02 20:46:02 +05:00
Andrey Rakhmatullin
155a504f24
Bump version: 2.13.2 → 2.13.3
2025-07-02 20:39:46 +05:00
Andrey Rakhmatullin
cf465bf644
Release notes for 2.13.3. ( #6934 )
...
* Release notes for 2.13.3.
* Address feedback.
2025-07-02 20:36:01 +05:00
Laerte Pereira
dabdc7550e
Deprecate CONCURRENT_REQUESTS_PER_IP setting ( #6921 )
...
* Deprecate CONCURRENT_REQUESTS_PER_IP setting
* Typing fix
* PR review
* tests
* oops
* Update scrapy/settings/default_settings.py
Co-authored-by: Adrián Chaves <adrian@chaves.gal>
* update logic
---------
Co-authored-by: Adrián Chaves <adrian@chaves.gal>
2025-06-30 16:51:05 +05:00
Andrey Rakhmatullin
3843091c5f
Mark abstract base classes as such. ( #6930 )
...
* Mark abstract base classes as such.
* Remove an unneeded method.
* Fix exporter test coverage.
2025-06-30 15:14:34 +05:00
Andrey Rakhmatullin
03fe7a6424
Add a deprecation notice for the offsite spider middleware.
2025-06-29 02:35:48 +05:00
Andrey Rakhmatullin
2c1c10e923
Remove deprecated offsite spider middleware. ( #6926 )
...
* Remove deprecated offsite spider middleware.
* Add a deprecation notice for the offsite spider middleware.
2025-06-29 02:35:20 +05:00
Adrián Chaves
ba1cedee1b
Document the new defaults of throttling settings ( #6923 )
2025-06-28 18:13:54 +05:00
Adrián Chaves
3019393686
Document the new defaults of throttling settings ( #6923 )
2025-06-28 18:04:40 +05:00
Adrián Chaves
1473f4d347
Remove the deprecated sphinx-hoverxref ( #6922 )
2025-06-28 18:04:06 +05:00
Andrey Rakhmatullin
95172659af
Add sphinx-lint. ( #6920 )
2025-06-28 01:37:20 +02:00
Andrey Rakhmatullin
843ad1afb1
Replace Black with Ruff in contributing.rst. ( #6903 )
2025-06-23 22:25:56 +05:00
Andrey Rakhmatullin
712e965dbd
Replace Black with Ruff in contributing.rst. ( #6903 )
2025-06-23 17:56:48 +02:00
Andrey Rakhmatullin
daa1a7d0b6
Remove the chdir fixture, re-enable fancy pytest asserts ( #6888 )
...
* Remove the chdir fixture.
* Re-enable fancy pytest asserts.
* Remove doc files from pytest ignores.
* Restore docs/_ext in test collection ignores.
* Skip a doctest that fails on Windows.
* Fix tests that were writing to the current dir.
2025-06-14 14:01:20 +05:00
Andrey Rakhmatullin
0390176ecd
Merge branch '2.13'
2025-06-09 15:54:35 +05:00
Andrey Rakhmatullin
c6740604a4
Bump version: 2.13.1 → 2.13.2
2025-06-09 15:21:06 +05:00
Andrey Rakhmatullin
7400868ad5
Release notes for 2.13.2. ( #6868 )
...
* Release notes for 2.13.2.
* Update release notes.
2025-06-09 15:19:02 +05:00
Andrey Rakhmatullin
405d9bc8a2
More docs for the is_asyncio_reactor_installed() behavior change. ( #6866 )
2025-06-06 12:59:49 +02:00
Andrey Rakhmatullin
d99234a33f
Install the reactor explicitly in CrawlerRunner examples. ( #6865 )
2025-06-06 11:54:21 +02:00
Adrián Chaves
b8cd079014
Shorten the README and remove broken links to scrapy.org ( #6833 )
2025-06-06 12:44:02 +05:00
Adrián Chaves
105c0afb6e
Feature the new logo in the README ( #6831 )
2025-06-06 12:43:56 +05:00
Andrey Rakhmatullin
3aa5e75787
Use AsyncCrawlerProcess in commands. ( #6845 )
...
* Use AsyncCrawlerProcess in commands.
* Ignore coverage of abstract methods.
* Address feedback.
2025-06-03 17:47:52 +05:00
Rodrigosnrocha
9cc23641cc
Deprecate _parse_response and implement parse_with_rules ( #6804 )
2025-06-02 17:00:17 +02:00
Andrey Rakhmatullin
e0b9f2d8f6
Don't use CrawlerProcess in the commands that don't need it. ( #6824 )
...
* Don't use CrawlerProcess in the commands that don't need it.
* Use a dummy spider loader in runspider.
2025-05-28 19:57:33 +05:00
Andrey Rakhmatullin
05b3b205ce
Add `AsyncCrawlerProcess` and `Crawler.crawl_async()` ( #6817 )
...
* Add a basic Crawler.crawl_async().
* Add custom loop tests for *CrawlerRunner.
* Add AsyncCrawlerProcess.
* Update related docs.
* Update practices.rst.
* Address test failures.
* Add a note about AsyncCrawler* to the docs about switching reactors.
* Address feedback.
* Update for TID253.
* Simplify test_crawler_crawl_async_twice_parallel_unsupported().
2025-05-28 18:55:44 +05:00
Andrey Rakhmatullin
dceb85bf3e
Add is_asyncio_available(). ( #6827 )
...
* Add is_asyncio_available().
* Print unexpected warnings in test_install_asyncio_reactor().
* Fix printing warnings.
* Fix printing warnings - 2.
* Skip TestDeferredToFuture on non-asyncio.
* Test the is_asyncio_available() exception.
2025-05-28 14:46:39 +05:00
Adrián Chaves
c480c77f54
Shorten the README and remove broken links to scrapy.org ( #6833 )
2025-05-28 11:35:18 +02:00
Adrián Chaves
f98ffc71d2
2.13.1 ( #6832 )
2025-05-28 10:58:34 +02:00
Adrián Chaves
7b4cf06b6e
Feature the new logo in the README ( #6831 )
2025-05-28 10:54:36 +02:00
Adrián Chaves
7fe7f1734a
Bump version: 2.13.0 → 2.13.1
2025-05-28 10:12:46 +02:00
Adrián Chaves
0cdb971f63
Complete the release notes
2025-05-28 10:06:04 +02:00
Mikhail Korobov
c6643c08ee
Merge pull request #6828 from scrapy/lower-start-priority
...
Scrapy 2.13.1: Prioritize other requests over start requests
2025-05-28 11:29:57 +05:00
Andrey Rakhmatullin
06dec08125
Fix a wrong versionadded usage. ( #6822 )
2025-05-27 12:34:40 +05:00
Keval Sakhiya
43087fe1df
Fix typo in documentation and code: 'needs_backoff' -> 'needs_backout' ( #6815 )
...
Corrected the typo in the code and documentation where 'needs_backoff' was incorrectly used instead of 'needs_backout'.
2025-05-27 12:34:33 +05:00
Adrián Chaves
05529f3017
Release notes for Scrapy 2.13.1
2025-05-27 08:44:18 +02:00
Andrey Rakhmatullin
f2fc177f1f
Fix a wrong versionadded usage. ( #6822 )
2025-05-23 11:06:33 +02:00
Keval Sakhiya
ff7d29654a
Fix typo in documentation and code: 'needs_backoff' -> 'needs_backout' ( #6815 )
...
Corrected the typo in the code and documentation where 'needs_backoff' was incorrectly used instead of 'needs_backout'.
2025-05-20 07:51:31 +02:00
Andrey Rakhmatullin
3c2cd53abb
Skip the doctest.
2025-05-15 22:17:37 +05:00
Andrey Rakhmatullin
bf1bfaaa3e
Slight improvements for the signal docs.
2025-05-15 20:02:38 +05:00
Andrey Rakhmatullin
1ddcb568e2
Add send_catch_log_async().
2025-05-15 15:45:55 +05:00
Andrey Rakhmatullin
82acef3051
Add AsyncCrawlerRunner. ( #6796 )
2025-05-14 16:21:18 +02:00
Andrey Rakhmatullin
82a3245158
Bump version: 2.12.0 → 2.13.0
2025-05-08 14:43:34 +05:00
Andrey Rakhmatullin
0ce693dfa9
Update VERSION strings.
2025-05-08 13:23:19 +05:00
Andrey Rakhmatullin
b07e6d4ea8
Merge remote-tracking branch 'origin/master' into relnotes-2.13.0
2025-05-08 13:17:47 +05:00
Andrey Rakhmatullin
e86b5051c2
Merge commit '373e501' into relnotes-2.13.0
2025-05-08 10:55:57 +05:00
Andrey Rakhmatullin
5f6d1b464b
Cover up to 373e501 in the release notes.
2025-05-08 10:55:40 +05:00
Adrián Chaves
036f3e5627
Support asynchronous start requests ( #6729 )
2025-05-07 19:04:03 +02:00
Adrián Chaves
373e501f78
Link to scrapy.org from the docs ( #6780 )
2025-05-07 16:11:22 +02:00
Andrey Rakhmatullin
474f8312ff
Merge pull request #6776 from wRAR/deferred-apis
...
Add a list of Deferred-only APIs.
2025-05-05 21:28:50 +04:00
Andrey Rakhmatullin
acb5f895cd
Update docs/topics/coroutines.rst
...
Co-authored-by: Adrián Chaves <adrian@chaves.io>
2025-05-05 22:28:36 +05:00
Adrián Chaves
523fc25c4d
Document default values set by startproject ( #6775 )
2025-05-05 18:51:15 +02:00
Andrey Rakhmatullin
b93290f28a
Add a list of Deferred-only APIs.
2025-05-05 19:38:04 +05:00
Andrey Rakhmatullin
4aba7e5f66
Mention the deprecation of TestSpider.
2025-04-25 20:16:26 +05:00
Andrey Rakhmatullin
095140f134
Cover the current master in the release notes (up to daf9db7).
2025-04-25 19:43:29 +05:00
Andrey Rakhmatullin
b1f85b5a17
Release notes for 2.13.0, up to b4c2531021.
2025-04-24 20:03:36 +05:00
Andrey Rakhmatullin
daf9db72b2
Base class for universal spider middlewares ( #6693 )
...
* Initial BaseSpiderMiddleware.
* Rename the new methods.
* Remove the spider argument from new BaseSpiderMiddleware methods.
* Add docs for BaseSpiderMiddleware.
* Silence pylint.
* Add BaseSpiderMiddleware tests.
* Add a release note.
2025-04-23 19:29:04 +05:00
Mehraz Hossain Rumman
3ca882fba8
Syntax Error Fixed ( #6738 )
...
* Syntax error fix issue #6731
* test case added
* extra logic removed
* mock spider fixture
* Update scrapy/utils/misc.py
Co-authored-by: Adrián Chaves <adrian@chaves.gal>
* settings.rst updated
* settings.rst updated
* settings.rst updated
---------
Co-authored-by: Adrián Chaves <adrian@chaves.gal>
2025-03-20 17:02:10 +05:00
Andrey Rakhmatullin
9057bf4e1e
More docs about Deferred<->Future interoperability. ( #6734 )
2025-03-15 11:47:16 +01:00
Andrey Rakhmatullin
fc566a7ff9
Don't install the reactor in is_asyncio_reactor_installed(). ( #6732 )
2025-03-14 20:46:17 +01:00
Andrey Rakhmatullin
d0dabbc097
Enable AsyncioSelectorReactor by default. ( #6713 )
...
* Enable AsyncioSelectorReactor by default.
* Improve get_crawler(), switch more tests to it.
* Fix the remaining default-reactor test failures.
* Address documentation feedback.
* Make pinned envs more consistent.
2025-03-12 01:18:30 +05:00
Adrián Chaves
ba28d96d3e
Centralize from_crawler docs (and somewhat related changes) ( #6723 )
2025-03-11 14:53:04 +01:00
Adrián Chaves
5a0690c89d
Remove or post-pone the use of itemadapter.is_item, as a potentially expensive call ( #6719 )
2025-03-11 14:52:48 +01:00
Adrián Chaves
9b7db1a068
Move some reference docs of Request to the code ( #6721 )
2025-03-11 12:43:50 +01:00
Adrián Chaves
bee74fb753
Remove trailing whitespace
2025-03-11 11:56:44 +01:00
Andrey Rakhmatullin
d2e5486d5a
Remove the Splash recommendation.
2025-03-07 13:20:42 +05:00
Adrián Chaves
0c9200094e
Extend BaseSettings with utils for add-ons ( #6614 )
2025-03-05 10:31:59 +01:00
Andrey Rakhmatullin
c200458f24
Add more docs for updating sync spider middlewares. ( #6688 )
2025-02-25 00:16:23 +01:00
anubhav
f041f26a6f
Support dark mode in the documentation ( #6653 )
2025-02-06 18:07:07 +01:00
Laerte Pereira
2eb3c75c69
Remove AjaxCrawlMiddleware mention from built-in downloader middleware
2025-02-05 13:16:51 -03:00