From f63a3aff254f43f06fa7de074159ff1f42546789 Mon Sep 17 00:00:00 2001 From: Nishita Matlani <86043614+Nishieee@users.noreply.github.com> Date: Mon, 15 Jun 2026 02:41:55 -0400 Subject: [PATCH] Fix strip_url() removing default port from password. (#7605) --- scrapy/utils/url.py | 3 ++- tests/test_utils_url.py | 12 ++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/scrapy/utils/url.py b/scrapy/utils/url.py index 8f75e2618..4d2bbdda2 100644 --- a/scrapy/utils/url.py +++ b/scrapy/utils/url.py @@ -139,7 +139,8 @@ def strip_url( ("ftp", 21), } ): - netloc = netloc.replace(f":{parsed_url.port}", "") + port_suffix = f":{parsed_url.port}" + netloc = netloc.removesuffix(port_suffix) return urlunparse( ( diff --git a/tests/test_utils_url.py b/tests/test_utils_url.py index 19a31c353..a74b9a41d 100644 --- a/tests/test_utils_url.py +++ b/tests/test_utils_url.py @@ -346,6 +346,18 @@ class TestStripUrl: "ftp://username:password@www.example.com:221/file.txt", "ftp://username:password@www.example.com:221/file.txt", ), + ( + "http://user:80@www.example.com:80/index.html", + "http://user:80@www.example.com/index.html", + ), + ( + "https://user:443@www.example.com:443/index.html", + "https://user:443@www.example.com/index.html", + ), + ( + "ftp://user:21@www.example.com:21/file.txt", + "ftp://user:21@www.example.com/file.txt", + ), ], ) def test_default_ports(self, url: str, expected: str) -> None: