import asyncio import re from crawlee.crawlers import HttpCrawler, HttpCrawlingContext from crawlee.proxy_configuration import ProxyConfiguration from crawlee.sessions import SessionPool async def main() -> None: # To use the proxy IP session rotation logic, you must turn the proxy usage on. proxy_configuration = ProxyConfiguration( # options ) # Initialize crawler with a custom SessionPool configuration # to manage concurrent sessions and proxy rotation crawler = HttpCrawler( proxy_configuration=proxy_configuration, # Activates the Session pool (default is true). use_session_pool=True, # Overrides default Session pool configuration. session_pool=SessionPool(max_pool_size=100), ) # Define the default request handler that manages session states # based on the response content and potential blocking @crawler.router.default_handler async def default_handler(context: HttpCrawlingContext) -> None: page_content = (await context.http_response.read()).decode() title_match = re.search(r'