Skip to content

Парсер объявлений с Циан и Я.Недвижимости на основе Puppeteer'а

Notifications You must be signed in to change notification settings

mishaberezin/mordor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Инсталейшон

🤪 Node.js ≥ 10
👾 MongoDB ≥ 4
👻 PM2 ≥ 3

mongod
git clone
npm ci

Запустить одного из роботов можно так:

node app/api.js
node app/cian-crawler.js

Хотя без секретов, наверное, не запустится 😳.

Структура

.
├── .env (🔥 секреты, см. пакет dotenv)
├── .eslintrc.js
├── .gitignore
├── README.md
├── api (🔥 http ручки)
│   └── index.js
├── app (🔥 процессы, запускаются через pm2)
│   ├── api.js
│   ├── cian-checker.js
│   ├── cian-crawler.js
│   ├── digest.js
│   ├── realty-checker.js
│   ├── realty-crawler.js
│   └── report.js
├── config (🔥 конфигурация для разных окружений)
│   ├── default.js
│   └── production.js
├── ecosystem.config.js (🔥 конфиг для PM2, деплой/запуск)
├── lib (🔥 основной нодовый код проекта)
│   ├── bots (🔥 роботы)
│   ├── db (🔥 методы для работы с базой)
│   ├── fixup
│   ├── mordobot.js (🔥 телеграм бот)
│   └── utils
├── package-lock.json
└── package.json

Дисклеймер

  • Название mordor долгая история
  • От Гитхаба нужны только хостинг + ревизии, так что коммит месаджи не смотреть 😳

Деплой

Перед деплоем обязательно все запушить, затем:

pm2 deploy production update

Подробнее: https://pm2.io/doc/en/runtime/guide/easy-deploy-with-ssh/

Рецепты

Обновить .env

scp .env ddml@host:~

Мэджик

  1. Пакет node-gyp требует Python 2.7. Лечение:
npm config set python '/usr/bin/python2.7'
  1. PM2 использует неинтерактивный шел для деплоя, поэтому строчки про подключение nvm находятся в самом верху .bashrc до проверки про интерактивность.

About

Парсер объявлений с Циан и Я.Недвижимости на основе Puppeteer'а

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published