Initial commit: Kwork parser project
- Анализ 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
This commit is contained in:
commit
90f465eedb
27
.gitignore
vendored
Normal file
27
.gitignore
vendored
Normal file
@ -0,0 +1,27 @@
|
||||
# Python
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
*.so
|
||||
.Python
|
||||
env/
|
||||
venv/
|
||||
*.egg-info/
|
||||
|
||||
# IDE
|
||||
.idea/
|
||||
.vscode/
|
||||
*.swp
|
||||
*.swo
|
||||
|
||||
# Данные
|
||||
*.har
|
||||
*.json
|
||||
*.csv
|
||||
!requirements.txt
|
||||
|
||||
# Секреты
|
||||
.env
|
||||
.env.local
|
||||
*.key
|
||||
*.pem
|
||||
108
README.md
Normal file
108
README.md
Normal file
@ -0,0 +1,108 @@
|
||||
# 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>
|
||||
4
requirements.txt
Normal file
4
requirements.txt
Normal file
@ -0,0 +1,4 @@
|
||||
requests>=2.31.0
|
||||
beautifulsoup4>=4.12.0
|
||||
lxml>=4.9.0
|
||||
pydantic>=2.0.0
|
||||
Loading…
Reference in New Issue
Block a user