diff --git a/src/crewai_tools/tools/scrapegraph_scrape_tool/scrapegraph_scrape_tool.py b/src/crewai_tools/tools/scrapegraph_scrape_tool/scrapegraph_scrape_tool.py index 29c132ea9..65f630c46 100644 --- a/src/crewai_tools/tools/scrapegraph_scrape_tool/scrapegraph_scrape_tool.py +++ b/src/crewai_tools/tools/scrapegraph_scrape_tool/scrapegraph_scrape_tool.py @@ -61,12 +61,14 @@ class ScrapegraphScrapeTool(BaseTool): website_url: Optional[str] = None user_prompt: Optional[str] = None api_key: Optional[str] = None + enable_logging: bool = False def __init__( self, website_url: Optional[str] = None, user_prompt: Optional[str] = None, api_key: Optional[str] = None, + enable_logging: bool = False, **kwargs, ): super().__init__(**kwargs) @@ -84,8 +86,9 @@ class ScrapegraphScrapeTool(BaseTool): if user_prompt is not None: self.user_prompt = user_prompt - # Configure logging - sgai_logger.set_logging(level="INFO") + # Configure logging only if enabled + if self.enable_logging: + sgai_logger.set_logging(level="INFO") @staticmethod def _validate_url(url: str) -> None: @@ -99,22 +102,6 @@ class ScrapegraphScrapeTool(BaseTool): "Invalid URL format. URL must include scheme (http/https) and domain" ) - def _handle_api_response(self, response: dict) -> str: - """Handle and validate API response""" - if not response: - raise RuntimeError("Empty response from Scrapegraph API") - - if "error" in response: - error_msg = response.get("error", {}).get("message", "Unknown error") - if "rate limit" in error_msg.lower(): - raise RateLimitError(f"Rate limit exceeded: {error_msg}") - raise RuntimeError(f"API error: {error_msg}") - - if "result" not in response: - raise RuntimeError("Invalid response format from Scrapegraph API") - - return response["result"] - def _run( self, **kwargs: Any, @@ -141,8 +128,7 @@ class ScrapegraphScrapeTool(BaseTool): user_prompt=user_prompt, ) - # Handle and validate the response - return self._handle_api_response(response) + return response except RateLimitError: raise # Re-raise rate limit errors