| import aiohttp
|
| 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 |