import aiohttp # type: ignore import logging from typing import Optional logger = logging.getLogger(__name__) async def fetch_page(session: aiohttp.ClientSession, url: str, headers: dict) -> Optional[str]: """Fetch a page using aiohttp""" try: logger.info(f"Requesting URL: {url}") async with session.get(url, headers=headers, timeout=15) as response: if response.status == 200: logger.debug(f"Successfully retrieved content from {url}") return await response.text() else: logger.error(f"Error retrieving URL {url}: Status code {response.status}") return None except Exception as e: logger.error(f"Request failed for {url}: {e}") return None