From 247e24e5f47565d6c767a8865096cc2f84677b19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A1n=20Chaves?= Date: Tue, 27 Feb 2024 23:00:49 +0100 Subject: [PATCH] Do not set _scheme_proxy unless necessary --- scrapy/downloadermiddlewares/httpproxy.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/scrapy/downloadermiddlewares/httpproxy.py b/scrapy/downloadermiddlewares/httpproxy.py index fe7bf0e04..e1a076b74 100644 --- a/scrapy/downloadermiddlewares/httpproxy.py +++ b/scrapy/downloadermiddlewares/httpproxy.py @@ -50,13 +50,14 @@ class HttpProxyMiddleware: creds, proxy_url = self._get_proxy(request.meta["proxy"], "") elif self.proxies: parsed = urlparse_cached(request) - scheme = parsed.scheme + _scheme = parsed.scheme if ( # 'no_proxy' is only supported by http schemes - scheme not in ("http", "https") + _scheme not in ("http", "https") or not proxy_bypass(parsed.hostname) - ) and scheme in self.proxies: + ) and _scheme in self.proxies: creds, proxy_url = self.proxies[scheme] + scheme = _scheme self._set_proxy_and_creds(request, proxy_url, creds, scheme)