Skip to content

Va3elina/Wohnungsbot

Repository files navigation

# 🏠 Wohnungsbot

Телеграм-бот для автоматического поиска квартир в Германии (ImmobilienScout24, Immowelt, Kleinanzeigen, InBerlinWohnen).  
Бот парсит новые объявления, фильтрует по заданным параметрам и мгновенно присылает пользователю в Telegram.

---

## ✨ Возможности
- Поиск по сайтам:
  - ImmoScout24
  - Immowelt
  - Kleinanzeigen
  - InBerlinWohnen
- Настройка фильтров (город, цена, площадь, WBS, Tauschwohnung и др.)
- Уведомления о новых объявлениях с фото и ссылками
- Подписка и реферальная система (7 дней бесплатно + бонусы за друзей)
- Админ-панель для экспорта пользователей и объявлений

---

## 🛠 Требования
- Python **3.10+**
- SQLite (по умолчанию используется `seen_ids.db`)
- Установленные зависимости из `requirements.txt`

---

## 📦 Установка
1. Клонируем репозиторий:
   ```bash
   git clone https://github.com/Va3elina/Wohnungsbot.git
   cd Wohnungsbot
Создаём виртуальное окружение:

bash
Копировать код
python -m venv venv
source venv/bin/activate   # Linux / Mac
venv\Scripts\activate      # Windows
Устанавливаем зависимости:

bash
Копировать код
pip install -r requirements.txt
Создаём файл .env по примеру .env.template и указываем свои данные:

env
Копировать код
# ImmoScout24 API
IMMOSCOUT_CLIENT_ID=ImmobilienScout24-iPhone-Wohnen-AppKey
IMMOSCOUT_CLIENT_SECRET=ВАШ_СЕКРЕТ

# Immowelt (если используете прокси)
IMMO_PROXY=http://user:pass@host:port

# Datadome ключи (для обхода защиты Immowelt)
DATADOME_JSPL=CHANGE_ME
DATADOME_CID=CHANGE_ME
DATADOME_DDK=CHANGE_ME

# Логи и база
LOG_FILE=immowelt_scraper.log
DB_FILE=seen_ids.db
🚀 Запуск
Запуск бота:

bash
Копировать код
python telegram.py
Запуск основного скрипта (поиск + рассылка):

bash
Копировать код
python main.py
(Опционально) Можно использовать pm2, supervisor или systemd, чтобы бот работал постоянно.

👩‍💻 Админ-команды
/export_users — выгрузка таблицы users в Excel

/export_listings — выгрузка таблицы listings

/set_sub <user_id> <YYYY-MM-DD> — вручную установить подписку пользователю

📂 Структура проекта
bash
Копировать код
Wohnungsbot/
│── telegram.py          # основной бот (работа с пользователями)
│── main.py              # главный цикл: парсинг + рассылка
│── bot_admin.py         # админ-бот
│── telegram_sender.py   # отправка новых объявлений
│── Immoscout_bd.py      # парсер ImmoScout24
│── Immowelt.py          # парсер Immowelt
│── Kleinanzeigen.py     # парсер Kleinanzeigen
│── InBerlinwohnen.py    # парсер InBerlinWohnen
│── clean_database.py    # очистка базы от дублей
│── seen_ids.db          # SQLite база
│── .env.template        # пример конфигурации
│── requirements.txt     # зависимости
│── README.md            # документация

About

Telegram bot for flat hunting in Germany (ImmobilienScout24, Immowelt, Kleinanzeigen, InBerlinWohnen)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages