fix: Allow config change on `PlaywrightCrawler` by mylank · Pull Request #1186 · apify/crawlee-python

Thanks for the heads up @sherpya! Do you have an executable code snippet that would reproduce the issue?

import os
from datetime import timedelta

from crawlee import ConcurrencySettings, service_locator
from crawlee.browsers import BrowserPool
from crawlee.configuration import Configuration
from crawlee.crawlers import PlaywrightCrawler

from .request import RequestType, make_request
from .routes import router
from ..settings import settings

__all__ = ['WACrawler']


class WACrawler(PlaywrightCrawler):
    def __init__(self, **kwargs):
        #service_locator.set_configuration(
        #    Configuration(persist_storage=False, default_request_queue_id=str(os.getpid())))
        browser_pool = BrowserPool.with_default_plugin(
            headless=kwargs.pop('headless', None),
            browser_type='chromium',
            fingerprint_generator=None,
            browser_launch_options=kwargs.pop('browser_launch_options', None),
            browser_new_context_options=kwargs.pop('browser_new_context_options', None),
            use_incognito_pages=False,
            operation_timeout=timedelta(milliseconds=settings.TIMEOUT),
        )
        concurrency_settings = ConcurrencySettings(max_concurrency=1)
        super().__init__(browser_pool=browser_pool,
                         concurrency_settings=concurrency_settings,
                         request_handler=router,
                         request_handler_timeout=timedelta(milliseconds=settings.TIMEOUT),
                         configuration=Configuration(persist_storage=False, default_request_queue_id=str(os.getpid())),
                         **kwargs)

The commented code is what I use right now