ru24.pro
«Фрилансим»
Декабрь
2024
1 2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

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

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

  • Каждой новой вкладке браузера присвоен ключ
  • Сервер принимает данные в виде словаря: {"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())