Загрузка данных


Ты работаешь в проекте:

/home/sigma.sbrf.ru@23865613/home/work/skil-scrap/adt-markdownify-meta

Контекст:
Мы проанализировали аналогичный проект hr-resume-scrapper-master.

Вывод анализа:
1. Старый проект открывает страницы через браузер:
   sync_playwright -> chromium.launch -> new_context -> new_page -> page.goto
2. API не используется.
3. Для Linux-среды старый проект использует browser args:
   --no-sandbox
   --disable-setuid-sandbox
   --disable-dev-shm-usage
4. В системе найден SberBrowser:
   /opt/Sberbrowser/sberbrowser/sberbrowser
5. Старый проект не скачивает PDF напрямую, а получает HTML/текст из браузера.
6. Для META нам достаточно page.content(), потому что нужно выгружать HTML/текст страницы в Markdown.

Задача:
Аккуратно доработать проект adt-markdownify-meta по аналогии со старым проектом.

Важно:
- Не добавляй API.
- Не добавляй endpoint-ы.
- Не добавляй requests/httpx/aiohttp/urllib.
- Не добавляй token, cookie, login, password.
- Не меняй общую структуру проекта.
- Не запускай полный scraping.
- Не устанавливай зависимости.
- Сейчас только правки файлов.

Нужно изменить только 2 файла:

1. meta_exporter.yaml.example
2. scripts/scrape_meta.py

Файл 1: meta_exporter.yaml.example

Нужно в browser добавить путь к SberBrowser:

browser:
  type: "sberbrowser"
  path_to_exe: "/opt/Sberbrowser/sberbrowser/sberbrowser"

В browser_settings добавить args:

browser_settings:
  headless: false
  slow_mo: 1000
  viewport_width: 1920
  viewport_height: 1080
  wait_until: "domcontentloaded"
  page_load_timeout: 60000
  args:
    - "--no-sandbox"
    - "--disable-setuid-sandbox"
    - "--disable-dev-shm-usage"

Важно:
- wait_until поставь "domcontentloaded", как в старом проекте.
- Не используй networkidle по умолчанию, потому что META может быть тяжёлым SPA-приложением и долго держать сетевую активность.

Файл 2: scripts/scrape_meta.py

Нужно доработать функцию launch_browser(playwright, config: dict).

Сейчас она запускает браузер только с headless и slow_mo.

Нужно сделать так:

1. Прочитать browser_settings.args из конфига.
2. Сформировать browser_options:

browser_options = {
    "headless": headless,
    "slow_mo": slow_mo,
    "args": args,
}

3. Если browser.type == "sberbrowser":
   - взять browser.path_to_exe;
   - если путь пустой, выбросить ValueError;
   - добавить browser_options["executable_path"] = path_to_exe;
   - запустить playwright.chromium.launch(**browser_options)

4. Если browser.type == "chromium":
   - запустить playwright.chromium.launch(**browser_options)

5. Если browser.type неизвестный:
   - выбросить ValueError.

6. Не меняй остальную логику export_meta без необходимости.

После правок покажи:

1. полный файл meta_exporter.yaml.example;
2. полный файл scripts/scrape_meta.py;
3. кратко напиши, что именно изменено.