Разработать многопоточный скрипт Playwright + FastApi

Нужен скрипт для взаимодействия локального сервера с браузером.

  • Каждой новой вкладке браузера присвоен ключ
  • Сервер принимает данные в виде словаря: {"key": key, "url": url, "req": req}
  • Если ключ отсутствует в словаре вкладок, то:
загружаем url в новой вкладке, присваиваем ей (вкладке) key, делаем инъекцию. Пример:
  1. pages[key] = context.new_page()
    pages[key].route("**/*", lambda r: r.fulfill(status=200, content_type="text/html", ))
    pages[key].goto(url)
    pages[key].wait_for_load_state('domcontentloaded')
    pages[key].add_script_tag(content=script)
    
  • Возвращаем результат функции вкладки:
  1. return pages[key].evaluate(f"custom('{req}')")
  • Условия: Параллельная (одновременная) работа (Multiproccessing или Threading) с возможностью указания максимального числа потоков (или multiprocessing.cpu_count())

Читайте на 123ru.net