CoderCastrov logo
CoderCastrov
Питон

Бот фрилансера - Как я заработал свои первые $500, отправив уведомление о новой работе в группу Telegram с помощью самостоятельно написанного бота

Бот фрилансера - Как я заработал свои первые $500, отправив уведомление о новой работе в группу Telegram с помощью самостоятельно написанного бота
просмотров
7 мин чтение
#Питон

Я работаю фрилансером в Origami IT Lab и обычно получаю большинство своих заказов с Freelancer.com.

Для тех, кто не знаком с Freelancer, это платформа, на которой работодатель может размещать задания, а фрилансеры, как я, могут получать заказы. Процесс поиска работы довольно прост: вам просто нужно сделать ставку на интересующую вас работу, и если работодатель понравится ваша ставка, он свяжется с вами и затем назначит вам проект после оценки среди других участников.

Ставка обычно состоит из трех частей - сумма ставки, описание и сроки выполнения, все три равно важны. Чтобы получить назначенную работу, вы должны сделать лучшую ставку по цене и срокам и предоставить хорошее описание того, как вы выполните работу. Вы можете обратиться к статье Writing a Winning Bid от Freelancer, чтобы получить более полное представление.

Постановка проблемы: Даже если все вышеперечисленное сделано правильно, вам могут не назначить работу, в худшем случае вас могут даже не рассмотреть. Вы можете спросить, почему? И ответ заключается в огромном количестве ставок (ручных и автоматических), которые получает работа. Например, для проекта по парсингу работодатель может получить 50-100 ставок, и факт в том, что большинство ставок остаются незамеченными. Работодатель обычно выбирает из топ-20 ставок, и топ-20 здесь означает тех, кто подал заявку сразу после публикации работы, а не тех, кто действительно соответствует набору навыков и обязательств. Сегодня работает много ботов, и очень трудно конкурировать с ними по времени. Поэтому я хотел что-то, что может делать ставки от моего имени, даже когда я сплю или занимаюсь другими делами. И вот где я начал искать решения.

Решение: Создайте бота, который будет делать ставки от вашего имени. Использование ботов увеличит шансы того, что работодатель просмотрит/рассмотрит вашу ставку и, возможно, свяжется с вами. Таким образом, увеличивается вероятность успеха, когда работодатель связывается с вами. См. изображение ниже -

Freelancer-Telegram Бот Workflow

Теперь, когда я знаю, что мне нужно использовать бота, мне нужно определить рабочий процесс и технологический стек. Я выбрал Python для написания кода бота и Telegram для получения уведомлений. Получение уведомлений - это важный шаг, который позволяет вам просмотреть предложение и изменить его, если это необходимо. Я прикрепил картинку рабочего процесса -

Freelancer-Telegram Бот Workflow

Я выбрал "Парсинг" в качестве навыка, на который я хотел бы делать ставки, так как у меня есть более 6 лет опыта в парсинге, и я уверен, что смогу выполнить любую работу, связанную с парсингом.

Анатомия заявки

Как вы могли заметить, "заявка" является самым важным шагом для получения работы. Итак, заявка состоит из 3 частей:

  • Сумма заявки - Сумма, которую вы считаете оправданной за затраченные усилия.
  • Описание заявки - Здесь должна содержаться информация о вас, о том, как вы выполните работу, и любые вопросы, которые у вас есть. Это дает работодателю представление о вас и вашей приверженности.
  • Сроки - Время, в течение которого вы можете выполнить работу.

Моя автоматическая заявка

В нашей автоматической заявке нам нужно иметь все вышеперечисленные параметры. Я сделал некоторые предположения для своей автоматической заявки.

  • Сумма заявки - Она должна быть меньше бюджета проекта; Я установлю ставку на 20% выше средней ставки.
  • Описание заявки -

★★★ Эксперт по парсингу / Python / Selenium ★★★ 6+ лет опыта ★★★ Позвольте мне сгенерировать несколько примеров записей, чтобы завоевать ваше доверие и удовлетворение. Я тщательно изучил требования вашего проекта и могу помочь вам с этим. Мы также можем обсудить сложность проекта, чтобы я мог предоставить вам реалистичную оценку времени выполнения. Не стесняйтесь связаться со мной через чат, чтобы обсудить ваш проект более подробно. У меня обширные знания в области парсинга веб-страниц с использованием Python, scrapy, BeautifulSoup, Selenium. У меня обширный опыт в парсинге веб-страниц с использованием IP-прокси-ротации, многопоточности и обхода капчи. Вы можете посмотреть мои предыдущие работы на freelancer и на github. Я буду рад обсудить проект перед началом, поэтому давайте побеседуем. Спасибо за ваше внимание. С наилучшими пожеланиями, Ритеш

  • Сроки - 14 дней

Достаточно разговоров! Давайте писать код

Прежде чем начать, я предполагаю, что у вас есть учетная запись на Freelancer.com, если нет, то создайте ее. После создания учетной записи Freelancer предоставляет API, которое мы можем использовать для реализации нашего рабочего процесса. Чтобы получить к нему доступ, нам сначала нужно получить токен авторизации. Вы можете получить его здесь —

https://accounts.freelancer.com/settings/develop

Сохраните его в файле auth_tokens.py

oauth_token = 'ВАШ_ТОКЕН_ЗДЕСЬ'

Установите следующую библиотеку

pip install freelancersdk

Создайте новый файл place_bids.py и добавьте следующие импорты

Определите константы

Получите все работы, опубликованные сегодня, добавьте фильтры по типу проекта и средней цене и т.д.

Получите количество заявок, если у работы меньше 20 заявок, то подайте заявку на эту работу, в противном случае игнорируйте эту работу

Как создать бота в Telegram?

Для этого есть... бот. Просто обратитесь к BotFather и следуйте нескольким простым шагам.

Создание нового бота

**/newbot**

Используйте команду /newbot, чтобы создать нового бота. BotFather попросит вас ввести имя и имя пользователя, а затем сгенерирует аутентификационный токен для вашего нового бота.

Имя вашего бота отображается в контактных данных и других местах.

Имя пользователя - это короткое имя, которое будет использоваться при упоминании и в ссылках t.me. Имена пользователей состоят из 5-32 символов и не учитывают регистр, но могут содержать только латинские символы, цифры и подчеркивания. Имя пользователя вашего бота должно заканчиваться на "bot", например "tetris_bot" или "TetrisBot".

Токен - это строка вроде 110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw, который требуется для авторизации бота и отправки запросов к API бота. Храните свой токен в безопасности и сохраняйте его надежно, так как им может воспользоваться любой для управления вашим ботом.

Когда бот готов, выполните следующую команду и нажмите кнопку Enable. Таким образом, ваш бот будет получать уведомления, когда его добавляют в группу. Если режим конфиденциальности отключен, бот будет получать все сообщения.

**/setprivacy**

Создайте новую группу, я назвал ее "Мои выступления". Когда бот готов, добавьте его в группу. Добавьте себя и бота в группу.

Получение ChatId группы в Telegram

Отправьте сообщение "Привет" в только что созданную группу. Теперь откройте браузер и введите следующий URL

https://api.telegram.org/bot" + YOUR_TELEGRAM_BOT_TOKEN + "/[getUpdates](https://api.telegram.org/bot5263082953:AAE-z5h8ddHa4kW5eZpakgSA4U4A-Az6kGE/getUpdates)"
Chat Id starts with “-”

Когда у вас есть Chat Id, вы готовы отправлять уведомления из Python в Telegram.

Отправка уведомлений в Telegram

Теперь ваш бот готов!

Финальный код!

Добавьте ниже в свой репозиторий GitHub и назовите этот файл - place_project_bid.py

Последний шаг - развернуть это на Heroku или AWS, чтобы оно могло продолжать работать. Я развернул своего бота на Heroku, так как это бесплатно и не требует платы.

Развертывание на Heroku

Для развертывания приложения на Heroku, сначала загрузите код на GitHub. Затем следуйте следующим шагам. Вам нужно добавить requirements.txt в свой репозиторий

freelancersdk==0.1.20
requests==2.27.1
urllib3==1.26.9

Затем добавьте Procfile в репозиторий, обратите внимание, что у него нет расширения.

worker: python place_project_bid.py

Войдите в Heroku, перейдите на панель инструментов и нажмите New>Create New App

Creating a new app

После создания приложения вы должны увидеть свое приложение

Список всех приложений в Heroku

Нажмите на свое приложение и перейдите на вкладку Deploy, а в разделе Deployment method выберите Github. Подключите свою учетную запись GitHub, после успешного подключения Heroku и GitHub, это должно выглядеть так:

Deployment method

Приложение подключено к GitHub - найдите репозиторий и выберите его. После подключения это должно выглядеть следующим образом:

App connected to GitHub

Включите автоматическое развертывание и, наконец, нажмите кнопку Deploy Branch. После нажатия этой кнопки наш бот будет развернут на Heroku. Затем перейдите на вкладку Resources и подождите, пока Dynamo не активируется, это занимает некоторое время, прежде чем вы сможете его включить.

Dynamo

Нажмите кнопку редактирования и включите Dynamo.

Включить Dynamo

Вот и все! Теперь ваш бот работает и вы должны начать получать уведомления в Telegram, когда появляется работа с вашим заданным запросом.

Моя группа Gigs, с Scraping Bot в качестве бота и отправкой своевременных уведомлений

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

Резюме

Что мы узнали? Мы узнали:

  • Как парсить портал фрилансеров с использованием API Freelancer
  • Как создать телеграм-бота
  • Как отправлять уведомления (ссылку на задание, на которое мы подали заявку) в телеграм-группу
  • Как развернуть это на облачном сервере, чтобы оно работало 24/7

Точки оптимизации

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

💬 Оставьте отзыв на эту статью, предоставив свои идеи, комментарии или запросы на будущие статьи.

📢 Поделитесь статьей с друзьями и коллегами в социальных сетях.

Угостите меня пивом, если вам понравилась эта статья! 😊

➕ Подписывайтесь на меня в Medium и читайте другие статьи.