Skip to content

mkhl941/RobotauaParser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Robota.ua Parser

Асинхронний парсер вакансій з robota.ua з Telegram ботом для керування та сповіщень.

Можливості

  • Автоматичне сканування вакансій за ключовими словами
  • Сповіщення про нові вакансії в Telegram
  • Керування парсером через Telegram команди
  • Збереження даних у JSONL, CSV та SQLite
  • Retry механізм з exponential backoff
  • Підтримка проксі
  • Ротація логів

Технології

  • Python 3.12
  • aiohttp
  • aiogram
  • beautifulsoup4 + lxml
  • tenacity
  • python-dotenv
  • sqlite3

Структура проєкту

RobotauaParser/
├── bot/
│   ├── bot.py          # ініціалізація бота
│   ├── filters.py      # фільтр доступу
│   ├── handlers.py     # обробники команд
│   └── notifier.py     # відправка сповіщень
├── core/
│   └── state.py        # глобальний стан
├── parser/
│   ├── scanner.py      # логіка парсингу
│   └── storage.py      # збереження даних
├── data/               # вихідні файли (не в git)
├── config.py
├── main.py
├── Dockerfile
├── docker-compose.yml
└── requirements.txt

Налаштування

Створіть файл .env на основі .env.example:

BOT_TOKEN=your_telegram_bot_token
CHAT_IDS=123456789,987654321
SCAN_INTERVAL=15
KEYWORDS=Python,Django,FastAPI
PROXIES=                          # через кому, можна залишити пустим

Telegram команди

Команда Опис
/start Запустити парсер
/stop Зупинити парсер
/status Статус та статистика
/add <слово> Додати ключове слово
/remove <слово> Видалити ключове слово
/interval <сек> Змінити інтервал сканування
/shutdown Вимкнути бота

Використання

Варіант A: Локальний Python

git clone https://github.com/mkhl941/RobotauaParser.git
cd RobotauaParser

python -m venv venv

# Windows
venv\Scripts\activate

# Linux/Mac
source venv/bin/activate

pip install -r requirements.txt
python main.py

Варіант B: Docker

# Збірка і запуск
docker-compose up

# Зупинка
docker-compose down

# Перезапуск
docker-compose restart

Вихідні файли

Файл Опис
data/output.jsonl Вакансії у форматі JSONL
data/output.csv Вакансії у форматі CSV
data/jobdatabase.db SQLite база для дедублікації
data/parser.log Логи роботи парсера
data/settings.json Збережені налаштування

Формат даних

{
    "source": "robota.ua",
    "external_id": "12345",
    "data": {
        "title": "Python Developer",
        "href": "https://robota.ua/company123/vacancy12345",
        "description": "...",
        "category": "IT",
        "location": "Київ / Хрещатик, 1",
        "salary": 5000,
        "contact_raw": "+380991234567",
        "published_at": "2026-02-20T10:00:00"
    },
    "metadata": {
        "scanned_at": "2026-02-20T10:00:01"
    }
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages