All Projects → andreybavt → Hobo-Sapiens

andreybavt / Hobo-Sapiens

Licence: other
A telegram bot to automatically search for apartments for rent

Programming Languages

python
139335 projects - #7 most used programming language
java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Hobo-Sapiens

untoitpourcaramel
#UnToitPourCaramel – Outil agrégeant les annonces immobilières dans un tableau Trello
Stars: ✭ 44 (+18.92%)
Mutual labels:  seloger, leboncoin
scrapy-LBC
Araignée LeBonCoin avec Scrapy et ElasticSearch
Stars: ✭ 14 (-62.16%)
Mutual labels:  leboncoin
simple-ansible-inventory
A simple, clean and easily readable Ansible inventory
Stars: ✭ 25 (-32.43%)
Mutual labels:  leboncoin
fiveN1-rent-scraper
🏠 a.k.a 591 rent scraper(591 租屋網爬蟲)
Stars: ✭ 51 (+37.84%)
Mutual labels:  rent-house
immo-feed
A extensible app for scraping property listings
Stars: ✭ 35 (-5.41%)
Mutual labels:  immobilier
terraform-aws-nvme-example
Example to manage your EBS NVME volumes on AWS
Stars: ✭ 46 (+24.32%)
Mutual labels:  leboncoin
dialogflow-go-webhook
Simple package to create DialogFlow v2 webhooks using Go
Stars: ✭ 23 (-37.84%)
Mutual labels:  leboncoin
figaro
Real-time voice-changer for voice-chat, etc. Will support many different voice-filters and features in the future. 🎵
Stars: ✭ 362 (+878.38%)
Mutual labels:  figaro
Questions
Web app inspired by Quora, allowing users ask question and get answers
Stars: ✭ 15 (-59.46%)
Mutual labels:  figaro

Hobo Sapiens

This is a bot that monitors Parisian real estate agencies and sends notifications about new flat rent offers to Telegram

Currently supported agencies:

  • MoteurImmo
  • AvendreAlouer
  • BienIci
  • Century21
  • Figaro
  • Laforet
  • LeBonCoin
  • LogicImmo
  • Orpi
  • Pap
  • Seloger

Prerequisites

  • Telegram bot - you need to have a telegram bot to receive notifications from this service
  • Chat ID Echo - you need to know your chat id to specify notification target

Installation

Clone this repository with --recursive flag

Quick start

docker-compose is required

Modify filter.json in the root of the repository according to your needs. The format is self-explanatory, there are 3 options:

  • arrondissements [mandatory] - list of 750* zip codes to search in
  • max_price [mandatory]
  • min_area [mandatory]
  • furnished [optional] - True if only search for furnished apartments

You can modify the filter at any time while the bot is running, no bot restart is needed for chagnes to be taken into account

Run from the root directory:

export HS_TELEGRAM_BOT_TOKEN="XXX" 
export HS_TELEGRAM_CHAT_ID="XXX"

docker-compose up -d

Where the environment variables are:

HS_TELEGRAM_BOT_TOKEN - telegram bot token

HS_TELEGRAM_CHAT_ID - telegram chat id where the notifications will be posted

Optional configuration

export HS_SCRAPE_INTERVAL_MINS=10 - environment variable that controls the number of minutes between each scrape loop. Default is 10 mins.

Monitoring

Apart from the bot itself there will be pre-configured instances of Prometheus and Grafana started for monitoring purposes.

Grafana is accessible at

http://localhost:13000

admin / admin

It shows the number of notifications sent per source, time it took to collect the information and some other metrics.

To run crawling without monitoring run:

docker-compose up -d crawler

Data Storage

Data is stored in the ~/.hobo-sapiens directory.

Listing deduplication

In order to detect duplicate annoucements posted on different websites the service uses Image hashing techniques.

Contribution

Contribution is welcome. It's best to add more proxy retrievers or/and agencies websites scrappers.

New agency scrapper:

All agency scrappers have the same tructure inheriting

services.abstract_service.AbstractService

In order to add a new one it's best just to copy (and rename) a

services.starter_service.StarterService

and then write an implementations to methods inside of it

To plug it in add it to the array service_classes = [...] in runner.py

Contact

[email protected]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].