# Kwork Parser Парсер для Kwork.ru на основе анализа HAR файла. ## Анализ HAR (kwork-dump.har) ### Общая статистика - **Всего запросов:** 1182 - **Домены:** kwork.ru, cdn-edge.kwork.ru, cdn-front.kwork.com, kworks.ru, notice.kwork.ru ### JSON эндпоинты (18 с телом) | URL | Метод | Размер (байт) | Описание | |-----|-------|---------------|----------| | `/quick-faq/init` | POST | 380,450 | Инициализация FAQ (самый большой) | | `/projects` | POST | 5,858 - 19,281 | Список проектов (пагинация) | | `/api/user/checknotify` | GET | 318 | Проверка уведомлений | | `/api/user/login` | POST | 142 | Авторизация | | `/user/get_reviews` | POST | 83 | Отзывы пользователя | | `/settings_main_save` | POST | 166 | Сохранение настроек | ### Ключевые URL для парсинга ``` https://kwork.ru/projects # Список проектов https://kwork.ru/projects/{id} # Страница проекта https://kwork.ru/projects/{id}/view # Просмотр проекта https://kwork.ru/api/user/login # API авторизации https://kwork.ru/api/user/checknotify # API уведомлений ``` ### Авторизация ⚠️ **HAR не содержит токенов авторизации** — сессия записана без заголовков Authorization. Для парсинга потребуется: 1. Либо cookies сессии 2. Либо авторизация через `/api/user/login` ### Структура данных Kwork использует **server-side rendering** — данные встроены в HTML. **Где искать данные:** - HTML страницы `/projects` — список проектов - HTML страницы `/projects/{id}` — детали проекта - JSON `/quick-faq/init` — данные FAQ (380KB) --- ## План разработки ### Этап 1: Парсинг HTML - [ ] Парсер страницы `/projects` (список) - [ ] Парсер страницы `/projects/{id}` (детали) - [ ] Обработка пагинации ### Этап 2: Авторизация - [ ] Авторизация через login API - [ ] Сохранение cookies/session - [ ] Refresh сессии ### Этап 3: API - [ ] Эндпоинт `/api/user/checknotify` - [ ] Эндпоинт `/user/get_reviews` - [ ] Другие API методы --- ## Структура проекта ``` kwork-parser/ ├── README.md ├── requirements.txt ├── kwork_parser/ │ ├── __init__.py │ ├── parser.py # HTML парсер │ ├── api.py # API клиент │ └── models.py # Модели данных ├── tests/ │ └── test_parser.py └── examples/ └── parse_projects.py ``` --- ## Быстрый старт ```bash # Установка pip install -r requirements.txt # Парсинг проектов python examples/parse_projects.py # Запуск тестов pytest tests/ ``` --- ## Заметки - HAR файл: `/root/kwork-dump.har` - Gitea репозиторий: `ssh://gitea@5.188.26.192:2222/claw/kwork-api.git` - Профиль: Claw