Добрый вечер коллеги и просто хабровчане.
Я - программист со стажем в 3 года, уже давно работаю на фрилансе. До недавнего времени я работал исключительно по связям, поэтому на фриланс-биржах всегда было очень мало отзывов, да и работать со случайными людьми не очень то и хотелось.
Недавно у меня появилась потребность в "быстрых" деньгах, а отсутствие заказов от знакомых вынудило меня запрыгнуть с головой в конкурентную яму грязи под названием "Kwork". Нет, вы не подумайте, я не имею ничего против самой платформы. Выполнена она удобно, исполнять и покупать заказы безопасно, а лояльное и равноправное отношение к обеим сторонам сделки определенно является плюсом среди многих фриланс-биржах.
Я знаю, о чем вы сейчас подумали мои ненаглядные. Да, определенно, на американских фриланс-биржах заплатят больше, нежели на том же kwork за одинаково выполненную работу, но я уже сказал, что нуждался в "быстрых" деньгах, так что и разбираться со всем этим я не очень то и горел желанием.
После выполнения одного из дешевых заказов, мой теперь постоянный заказчик решил дать мне новое ТЗ: написать парсер для hh.ru для отправки новых вакансий в TG-канал.
Звучит просто, но всегда есть какие-либо подводные камни.
Стоит уточнить. Это моя первая статья с использованием кода. Это можно сравнить с первым контентом на OnlyFans, надеюсь вы поняли о чем я :)
Алгоритм
Любой мой код (и надеюсь ваш тоже) начинается с обдумывания алгоритма. Заказчик хочет, чтобы он мог вставить ссылку на одну или несколько категорий, а сам бот уже мониторил их и выводил новые объявления в TG-канал, который он потом распиарит (не суть важно, это уже его работа).
Давайте представим действия бота:
Счетчик обнуляется
Цикл проходится по массиву с ссылками
Бот переходит по ссылке, сравнивает последние объявления
Недостающие объявления попадают в массив с последними объявлениями и публикуются в TG-канал
Счетчик снова заводится
Вроде все просто. Теперь обсудим алгоритм пользовательской стороны.
Заказчик пишет /start
Заказчик выбирает из меню "Добавить каталог"
Заказчик добавляет новый каталог и забывает о существования бота
На протяжении долгого времени TG-канал будет спамиться новыми вакансиями :D
Я бы разбил это на несколько скриптов, но последнее время мне так лень это делать, что я все умещаю в один скрипт. Надеюсь никто не будет осуждать мой код.
Все остальное будет во второй части этой статьи, ибо все пишется по ходу дела.
Спасибо за внимание