diff --git a/ddgs/base.py b/ddgs/base.py index ec8bbc86..54e41411 100644 --- a/ddgs/base.py +++ b/ddgs/base.py @@ -67,7 +67,10 @@ def request(self, *args: Any, **kwargs: Any) -> str | None: # noqa: ANN401 resp = self.http_client.request(*args, **kwargs) if resp.status_code == 200: return resp.text - return None + elif resp.status_code in (403, 429, 202): + raise ValueError(f"Request blocked with status code {resp.status_code} by rate limiting or anti-bot measures") + else: + raise ValueError(f"Request failed with status code {resp.status_code}") @cached_property def parser(self) -> LHTMLParser: @@ -119,6 +122,6 @@ def search( else: html_text = self.request(self.search_method, self.search_url, data=payload) if not html_text: - return None + raise ValueError("Empty response") results = self.extract_results(html_text) return self.post_extract_results(results)