diff --git a/docs/topics/addons.rst b/docs/topics/addons.rst index 815501e66..dba14e749 100644 --- a/docs/topics/addons.rst +++ b/docs/topics/addons.rst @@ -88,7 +88,7 @@ recommend that such custom components should be written in the following way: 1. The custom component (e.g. ``MyDownloadHandler``) shouldn't inherit from the default Scrapy one (e.g. - ``scrapy.core.downloader.handlers.http.HTTPDownloadHandler``), but instead + ``scrapy.core.downloader.handlers.http11.HTTP11DownloadHandler``), but instead be able to load the class of the fallback component from a special setting (e.g. ``MY_FALLBACK_DOWNLOAD_HANDLER``), create an instance of it and use it. @@ -166,7 +166,6 @@ Use a fallback component: .. code-block:: python - from scrapy.core.downloader.handlers.http import HTTPDownloadHandler from scrapy.utils.misc import build_from_crawler diff --git a/docs/topics/settings.rst b/docs/topics/settings.rst index 9dc26d703..5e56de05c 100644 --- a/docs/topics/settings.rst +++ b/docs/topics/settings.rst @@ -711,7 +711,7 @@ connections (for ``HTTP10DownloadHandler``). so you can safely ignore this setting, unless you really want to use HTTP/1.0 and override :setting:`DOWNLOAD_HANDLERS` for ``http(s)`` scheme accordingly, - i.e. to ``'scrapy.core.downloader.handlers.http.HTTP10DownloadHandler'``. + i.e. to ``'scrapy.core.downloader.handlers.http10.HTTP10DownloadHandler'``. .. setting:: DOWNLOADER_CLIENTCONTEXTFACTORY @@ -909,8 +909,8 @@ Default: { "data": "scrapy.core.downloader.handlers.datauri.DataURIDownloadHandler", "file": "scrapy.core.downloader.handlers.file.FileDownloadHandler", - "http": "scrapy.core.downloader.handlers.http.HTTPDownloadHandler", - "https": "scrapy.core.downloader.handlers.http.HTTPDownloadHandler", + "http": "scrapy.core.downloader.handlers.http11.HTTP11DownloadHandler", + "https": "scrapy.core.downloader.handlers.http11.HTTP11DownloadHandler", "s3": "scrapy.core.downloader.handlers.s3.S3DownloadHandler", "ftp": "scrapy.core.downloader.handlers.ftp.FTPDownloadHandler", } diff --git a/scrapy/core/downloader/handlers/http.py b/scrapy/core/downloader/handlers/http.py index 93b96c779..bc343e37f 100644 --- a/scrapy/core/downloader/handlers/http.py +++ b/scrapy/core/downloader/handlers/http.py @@ -1,7 +1,18 @@ +import warnings + from scrapy.core.downloader.handlers.http10 import HTTP10DownloadHandler from scrapy.core.downloader.handlers.http11 import ( HTTP11DownloadHandler as HTTPDownloadHandler, ) +from scrapy.exceptions import ScrapyDeprecationWarning + +warnings.warn( + "The scrapy.core.downloader.handlers.http module is deprecated," + " please import scrapy.core.downloader.handlers.http11.HTTP11DownloadHandler" + " instead of its deprecated alias scrapy.core.downloader.handlers.http.HTTPDownloadHandler", + ScrapyDeprecationWarning, + stacklevel=2, +) __all__ = [ "HTTP10DownloadHandler", diff --git a/scrapy/core/downloader/handlers/s3.py b/scrapy/core/downloader/handlers/s3.py index 02beb2f8b..05a71b742 100644 --- a/scrapy/core/downloader/handlers/s3.py +++ b/scrapy/core/downloader/handlers/s3.py @@ -2,7 +2,7 @@ from __future__ import annotations from typing import TYPE_CHECKING, Any -from scrapy.core.downloader.handlers.http import HTTPDownloadHandler +from scrapy.core.downloader.handlers.http11 import HTTP11DownloadHandler from scrapy.exceptions import NotConfigured from scrapy.utils.boto import is_botocore_available from scrapy.utils.httpobj import urlparse_cached @@ -29,7 +29,7 @@ class S3DownloadHandler: aws_access_key_id: str | None = None, aws_secret_access_key: str | None = None, aws_session_token: str | None = None, - httpdownloadhandler: type[HTTPDownloadHandler] = HTTPDownloadHandler, + httpdownloadhandler: type[HTTP11DownloadHandler] = HTTP11DownloadHandler, **kw: Any, ): if not is_botocore_available(): diff --git a/scrapy/settings/default_settings.py b/scrapy/settings/default_settings.py index 624e71774..543e5c043 100644 --- a/scrapy/settings/default_settings.py +++ b/scrapy/settings/default_settings.py @@ -251,8 +251,8 @@ DOWNLOAD_HANDLERS = {} DOWNLOAD_HANDLERS_BASE = { "data": "scrapy.core.downloader.handlers.datauri.DataURIDownloadHandler", "file": "scrapy.core.downloader.handlers.file.FileDownloadHandler", - "http": "scrapy.core.downloader.handlers.http.HTTPDownloadHandler", - "https": "scrapy.core.downloader.handlers.http.HTTPDownloadHandler", + "http": "scrapy.core.downloader.handlers.http11.HTTP11DownloadHandler", + "https": "scrapy.core.downloader.handlers.http11.HTTP11DownloadHandler", "s3": "scrapy.core.downloader.handlers.s3.S3DownloadHandler", "ftp": "scrapy.core.downloader.handlers.ftp.FTPDownloadHandler", } diff --git a/tests/test_addons.py b/tests/test_addons.py index 0383fa627..457945ea5 100644 --- a/tests/test_addons.py +++ b/tests/test_addons.py @@ -149,7 +149,7 @@ class TestAddonManager: ) assert ( crawler.settings.get(FALLBACK_SETTING) - == "scrapy.core.downloader.handlers.http.HTTPDownloadHandler" + == "scrapy.core.downloader.handlers.http11.HTTP11DownloadHandler" ) settings_dict = {