Как я заказ на фрилансе писал (Python). Часть 1

bb6bcc093ba0844fd700bb3429e736fb.png

Добрый вечер коллеги и просто хабаровчане.
Я — программист со стажем в 3 года, уже давно работаю на фрилансе. До недавнего времени я работал исключительно по связям, поэтому на фриланс-биржах всегда было очень мало отзывов, да и работать со случайными людьми не очень то и хотелось.

Недавно у меня появилась потребность в «быстрых» деньгах, а отсутствие заказов от знакомых вынудило меня запрыгнуть с головой в конкурентную яму грязи под названием «Kwork». Нет, вы не подумайте, я не имею ничего против самой платформы. Выполнена она удобно, исполнять и покупать заказы безопасно, а лояльное и равноправное отношение к обеим сторонам сделки определенно является плюсом среди многих фриланс-биржах.

Я знаю, о чем вы сейчас подумали мои ненаглядные. Да, определенно, на американских фриланс-биржах заплатят больше, нежели на том же kwork за одинаково выполненную работу, но я уже сказал, что нуждался в «быстрых» деньгах, так что и разбираться со всем этим я не очень то и горел желанием.

После выполнения одного из дешевых заказов, мой теперь постоянный заказчик решил дать мне новое ТЗ: написать парсер для hh.ru для отправки новых вакансий в TG-канал.
Звучит просто, но всегда есть какие-либо подводные камни.

Стоит уточнить. Это моя первая статься с использованием кода. Это можно сравнить с первым контентом на OnlyFans, надеюсь вы поняли о чем я :)

Алгоритм

Любой мой код (и надеюсь ваш тоже) начинается с обдумывания алгоритма. Заказчик хочет, чтобы он мог вставить ссылку на одну или несколько категорий, а сам бот уже мониторил их и выводил новые объявления в TG-канал, который он потом распиарит (не суть важно, это уже его работа).

Давайте представим действия бота:

  • Счетчик обнуляется

  • Цикл проходится по массиву с ссылками

  • Бот переходит по ссылке, сравнивает последние объявления

  • Недостающие объявления попадают в массив с последними объявлениями и публикуются в TG-канал

  • Счетчик снова заводится

Вроде все просто. Теперь обсудим алгоритм пользовательской стороны.

  • Заказчик пишет /start

  • Заказчик выбирает из меню «Добавить каталог»

  • Заказчик добавляет новый каталог и забывает о существования бота

  • На протяжении долгого времени TG-канал будет спамиться новыми вакансиями : D

Я бы разбил это на несколько скриптов, но последнее время мне так лень это делать, что я все умещаю в один скрипт. Надеюсь никто не будет осуждать мой код.

Все остальное будет во второй части этой статьи, ибо все пишется по ходу дела.
Спасибо за внимание

© Habrahabr.ru