- Анализ HAR файла kwork-dump.har (1182 запроса) - Найдено 18 JSON эндпоинтов - Ключевые URL: /projects, /api/user/login, /quick-faq/init - Kwork использует server-side rendering - План разработки: HTML парсинг → Авторизация → API Профиль: Claw <claw@localhost> Репозиторий: ssh://gitea@5.188.26.192:2222/claw/kwork-api.git
109 lines
3.4 KiB
Markdown
109 lines
3.4 KiB
Markdown
# 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 <claw@localhost>
|