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


Ты работаешь с двумя проектами:

Старый проект-образец:
/home/sigma.sbrf.ru@23865613/home/work/hr-resume-scrapper-master

Новый проект:
/home/sigma.sbrf.ru@23865613/home/work/skil-scrap/adt-markdownify-meta

Проблема в новом проекте:
SberBrowser запускается с remote-debugging-port=9222, в терминале появляется:

DevTools listening on ws://127.0.0.1:9222/devtools/browser/...

Но дальше в логах SberBrowser много ошибок:
- failed to connect to MCS endpoint
- component updater errors
- password manager / login database errors
- QUOTA_EXCEEDED
- ERR_CERT_AUTHORITY_INVALID
- DIRECTED_ENDPOINT
- ошибки расширений

Также ранее обычный browser mode зависал и не создавал страницу.
Нам нужно понять, как похожий проект hr-resume-scrapper-master обходил такие проблемы при запуске SberBrowser.

Задача:
Проанализировать только обходы и настройки запуска SberBrowser/Playwright в старом проекте.

Важно:
- Ничего не меняй в старом проекте.
- Ничего не меняй в новом проекте.
- Ничего не удаляй.
- Не запускай полный scraping.
- Не скачивай зависимости.
- Только читай код и конфиги.
- Все выводы подтверждай конкретными файлами, функциями и фрагментами кода.
- Если чего-то нет — прямо пиши "не найдено".

Проверь в старом проекте:

1. Где запускается браузер

Найди:

grep -R "sync_playwright" -n .
grep -R "chromium.launch" -n .
grep -R "launch_persistent_context" -n .
grep -R "connect_over_cdp" -n .
grep -R "new_context" -n .
grep -R "new_page" -n .
grep -R "page.goto" -n .

Для каждого найденного места покажи:
- файл;
- функцию;
- фрагмент кода;
- что делает.

2. Какие browser args используются

Найди:

grep -R "no-sandbox" -n .
grep -R "disable-setuid-sandbox" -n .
grep -R "disable-dev-shm-usage" -n .
grep -R "disable-gpu" -n .
grep -R "ignore-certificate-errors" -n .
grep -R "allow-insecure-localhost" -n .
grep -R "disable-extensions" -n .
grep -R "disable-component-update" -n .
grep -R "disable-background-networking" -n .
grep -R "disable-sync" -n .
grep -R "password-store" -n .
grep -R "use-mock-keychain" -n .
grep -R "user-data-dir" -n .
grep -R "remote-debugging-port" -n .

Сделай таблицу:
- аргумент;
- найден или нет;
- где найден;
- зачем он может быть нужен.

3. Как старый проект работает с SberBrowser

Найди:

grep -R "sberbrowser" -n .
grep -R "SberBrowser" -n .
grep -R "path_to_exe" -n .
grep -R "executable_path" -n .

Выясни:
- где задаётся путь к SberBrowser;
- передаётся ли executable_path;
- используется ли системный путь Linux;
- есть ли отдельные настройки под SberBrowser.

4. Как старый проект ждёт загрузку страницы

Найди:

grep -R "wait_until" -n .
grep -R "domcontentloaded" -n .
grep -R "networkidle" -n .
grep -R "wait_for_selector" -n .
grep -R "wait_for_timeout" -n .
grep -R "sleep" -n .
grep -R "timeout" -n .

Выясни:
- какой wait_until используется;
- какие timeout;
- ждёт ли проект selector;
- есть ли ручные паузы;
- есть ли retry.

5. Как старый проект обрабатывает ошибки SberBrowser

Найди:

grep -R "TimeoutError" -n .
grep -R "Exception" -n .
grep -R "retry" -n .
grep -R "max_retries" -n .
grep -R "try:" -n scripts
grep -R "except" -n scripts

Выясни:
- падает ли проект при ошибке одной ссылки;
- продолжает ли со следующей;
- какие сообщения пишет;
- закрывает ли страницу;
- закрывает ли браузер.

6. Использует ли старый проект уже открытую вкладку

Проверь:
- есть ли connect_over_cdp;
- есть ли remote-debugging-port;
- есть ли подключение к уже открытому браузеру;
- есть ли поиск page.url;
- есть ли browser.contexts/page.pages.

Если нет — прямо напиши:
"В старом проекте не найден режим подключения к уже открытому браузеру".

7. Что из старого проекта можно перенести в новый

Сравни с новым файлом:

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

Нужно сказать:
- каких browser args не хватает в новом проекте;
- нужно ли добавить ignore-certificate-errors;
- нужно ли добавить disable-component-update;
- нужно ли добавить disable-background-networking;
- нужно ли добавить disable-sync;
- нужно ли добавить password-store=basic;
- нужно ли добавить use-mock-keychain;
- нужно ли добавить отдельный user-data-dir;
- нужно ли вообще продолжать CDP existing mode, если старый проект такого не делал.

8. Очень важный вывод

Ответь конкретно:

- Старый проект реально обходил запуск уже открытого SberBrowser или нет?
- Старый проект просто запускал новый SberBrowser через Playwright или подключался к существующему?
- Есть ли в старом проекте решение для ошибок DevTools/MCS/component updater?
- Какие параметры запуска из старого проекта стоит перенести в новый?
- Какие ошибки можно игнорировать, если DevTools listening появился?
- Что нужно попробовать следующим шагом в новом проекте?

Формат ответа:

# Отчёт: как hr-resume-scrapper обходил проблемы SberBrowser

## 1. Где запускается браузер

## 2. Какие browser args используются

## 3. Как подключается SberBrowser

## 4. Как открывается страница

## 5. Как старый проект ждёт загрузку

## 6. Как обрабатываются ошибки

## 7. Есть ли подключение к уже открытому браузеру

## 8. Что перенести в adt-markdownify-meta

## 9. Главный вывод

В конце дай короткий список:
"Что попробовать дальше" — максимум 5 пунктов.