Giter Club home page Giter Club logo

slacker's Introduction

Done is better than perfect

  1. Clone from GitHub.
  2. cd /your/path/to/gitrepo
  3. npm install

====

  1. Pull latest master branch.
  2. Checkout YOURs branch and merge master into it.
  3. Edit and TEST it.
  4. Do 9000 commits.
  5. Merge to master via pull request on GitHub.

===

  • main page (NOT YET): http://sl.acker.ru
  • search api example: curl http://sl.acker.ru/search/`node -p "encodeURI('водитель')"`

slacker's People

Contributors

tarndweller avatar tematema avatar

Stargazers

 avatar

Watchers

James Cloos avatar  avatar

Forkers

tarndweller

slacker's Issues

Проверить колбек у реквеста. не успевает парсер ходить

Connecting to DB.
Getting page: 1
Getting page: 2
Getting page: 3
Getting page: 4
Getting page: 5
Getting page: 6
Getting page: 7
Getting page: 8
Getting page: 9
Getting page: 10
Getting page: 11
Getting page: 12
Getting page: 13
Getting page: 14
Getting page: 15
Done

TypeError: Cannot read property 'data' of undefined
at null. (/Users/tema/WebstormProjects/node1/callbacks.js:39:67)
at exports.each (/Users/tema/WebstormProjects/node1/node_modules/cheerio/lib/api/traversing.js:237:24)
at Request._callback (/Users/tema/WebstormProjects/node1/callbacks.js:33:19)
at Request.self.callback (/Users/tema/WebstormProjects/node1/node_modules/request/request.js:121:22)
at Request.EventEmitter.emit (events.js:98:17)
at Request. (/Users/tema/WebstormProjects/node1/node_modules/request/request.js:978:14)
at Request.EventEmitter.emit (events.js:117:20)
at IncomingMessage. (/Users/tema/WebstormProjects/node1/node_modules/request/request.js:929:12)
at IncomingMessage.EventEmitter.emit (events.js:117:20)
at _stream_readable.js:920:16


На 10 работает. На 13 падает.

БД переделать. Структуры нет.

В живом запросе ищем только по базе ВАКАНСИЙ и возвращаем если количество больше 0.

При клике на нужную вакансию уже выдача контента. Без спутник айди и прочей сервисной информации.

Алго для замены переносов

Короче все новые строки нужно отработать. Бывает что точку не ставят и делают перенос. Бывает по два. Короче все варианты нужно подумать и заменять это. В базу сохраняю с переносами. В лоб не пошло. Вариантов много.

print=y

http://vse35.ru/job/element.php?eid=791207&print=y
Так можно сократить траффик значительно. Минус — в логах палево. Мало кто из живых людей скорее всего этой фичей пользуется. Тем более даже кнопки на сайте нет.

Отследить множество асинк операций и потом disconnect от базы бота

  1. Скрипт не отпускает пока к базе прицеплен.
  2. Как понять что все операции отработали не ясно. Знаем кол-во всего вакансий, т.е. если 850 было и 850 добавлений сделано то пора отключаться.

НО как отследить. И что делать если половина добавится и фейл произойдет. Таймауты?

Сделать подтягивание в базу инфы об авторе с всё35

Как только вакансию проверяем у себя в базе или добавляем, смотрим есть ли по этому айди в базе расширенная инфа об авторе. Если нет то подтягиваем и добавляем. И раз в неделю проходить по всем айди фирм которые нам нужны и проверять обновили чего или нет они.

Огромная база емейлов

Все емейлы спарсить с всё35. Они там в открытом доступе лежат. Это огромный траффик на наш сайт. Все работодатели не обломаются и у нас разместить. Ну и остальным тоже как рекламку запульнуть. Т.к. в базе будет инфо об емейл, то можно и на вф8 рекламу запустить. И продавать рекламу по этой базе. Череповецкая база предпринимателей. Отлично.

Webhook-deployer работает через раз

Причем реально через раз.
500 ERROR (это работает лол)
404 (тут гиту не нравится. и не ясно по какой причине)

пока руками git pull по ssh можно делать. НО НЕ ЗАТЯГИВАТЬ. ПЕРЕПИСАТЬ НА express роут который сможет запускать чо-нибудь типа shell скрипта и перезапускать процесс ноды после git pull.

Структуру сайта и нужных полей проверять

Может хеш какой-нибудь. Например взять текст до числа вакансий с главной + концовку предложения + имя класса итд. Все важные параметры от которых зависит парсинг взять и посчитать с него хеш. При каждом новом обращении брать хеш который у нас уже посчитан и с тем что пришло. Если структура не меняется то и хеш ок. Если что-то поплыло или удалилось — беда. Не парсим, а жалуемся в лог/емейл. Так реально не зафейлить базу и быстро пофиксить бота если поменяют сайт спутника или поставят какойнибудь защитер.

Проверить все substring на id

В некоторых местах отрезаются ссылки, чтобы взять id. если номер будет больше чем 999999 — жди беды.

Поискать дыры на всё35

http://vse35.ru/afisha/list.php?sid=8218
Вот надо поискать такие ещё лазеечки, может кнопки нет а функционал есть. Возможно весь список вакансий одной страницей тягонуть можно. Было бы замечательно. У них в коде много фич оставлено которые не выведены в интерфейс вообще, или просто ссылки убраны. Битрикс похоже.

Убрать пробелы перед запятыми, поставить после, убрать двойные пробелы

Короче написать функцию которая треш текст к нормальному виду приводит. Читать невозможно. С точками и пробелами та же проблема. В конце объявлений поставить точки если нет, и начать предложения с больших букв.

Падает сайт если "\" в запросе

/home/tema/work/node_modules/mongoose/node_modules/mongodb/lib/mongodb/db.js:286
throw err;
^
SyntaxError: Invalid regular expression: //: \ at end of pattern
at new RegExp ()
at NativeConnection.callback (/home/tema/work/routes/api.js:20:29)
at NativeConnection.g (events.js:180:16)
at NativeConnection.EventEmitter.emit (events.js:92:17)
at open (/home/tema/work/node_modules/mongoose/lib/connection.js:453:10)
at NativeConnection.Connection.onOpen (/home/tema/work/node_modules/mongoose/lib/connection.js:461:5)
at /home/tema/work/node_modules/mongoose/lib/connection.js:421:10
at /home/tema/work/node_modules/mongoose/lib/drivers/node-mongodb-native/connection.js:59:5
at /home/tema/work/node_modules/mongoose/node_modules/mongodb/lib/mongodb/db.js:283:11
at process._tickCallback (node.js:415:13)
29 Mar 16:13:53 - [nodemon] app crashed - waiting for file changes before starting...

Jquery $ код ревью

Ярик посмотри код всё35 бота и найти чудовищно глупые решения с $ и селекторами.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.