Бот фрилансера - Как я заработал свои первые $500, отправив уведомление о новой работе в группу Telegram с помощью самостоятельно написанного бота
Я работаю фрилансером в Origami IT Lab и обычно получаю большинство своих заказов с Freelancer.com.
Для тех, кто не знаком с Freelancer, это платформа, на которой работодатель может размещать задания, а фрилансеры, как я, могут получать заказы. Процесс поиска работы довольно прост: вам просто нужно сделать ставку на интересующую вас работу, и если работодатель понравится ваша ставка, он свяжется с вами и затем назначит вам проект после оценки среди других участников.
Ставка обычно состоит из трех частей - сумма ставки, описание и сроки выполнения, все три равно важны. Чтобы получить назначенную работу, вы должны сделать лучшую ставку по цене и срокам и предоставить хорошее описание того, как вы выполните работу. Вы можете обратиться к статье Writing a Winning Bid от Freelancer, чтобы получить более полное представление.
Постановка проблемы: Даже если все вышеперечисленное сделано правильно, вам могут не назначить работу, в худшем случае вас могут даже не рассмотреть. Вы можете спросить, почему? И ответ заключается в огромном количестве ставок (ручных и автоматических), которые получает работа. Например, для проекта по парсингу работодатель может получить 50-100 ставок, и факт в том, что большинство ставок остаются незамеченными. Работодатель обычно выбирает из топ-20 ставок, и топ-20 здесь означает тех, кто подал заявку сразу после публикации работы, а не тех, кто действительно соответствует набору навыков и обязательств. Сегодня работает много ботов, и очень трудно конкурировать с ними по времени. Поэтому я хотел что-то, что может делать ставки от моего имени, даже когда я сплю или занимаюсь другими делами. И вот где я начал искать решения.
Решение: Создайте бота, который будет делать ставки от вашего имени. Использование ботов увеличит шансы того, что работодатель просмотрит/рассмотрит вашу ставку и, возможно, свяжется с вами. Таким образом, увеличивается вероятность успеха, когда работодатель связывается с вами. См. изображение ниже -
Freelancer-Telegram Бот Workflow
Теперь, когда я знаю, что мне нужно использовать бота, мне нужно определить рабочий процесс и технологический стек. Я выбрал Python для написания кода бота и Telegram для получения уведомлений. Получение уведомлений - это важный шаг, который позволяет вам просмотреть предложение и изменить его, если это необходимо. Я прикрепил картинку рабочего процесса -
Я выбрал "Парсинг" в качестве навыка, на который я хотел бы делать ставки, так как у меня есть более 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, вы готовы отправлять уведомления из 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
После создания приложения вы должны увидеть свое приложение
Нажмите на свое приложение и перейдите на вкладку Deploy, а в разделе Deployment method выберите Github. Подключите свою учетную запись GitHub, после успешного подключения Heroku и GitHub, это должно выглядеть так:
Приложение подключено к GitHub - найдите репозиторий и выберите его. После подключения это должно выглядеть следующим образом:
Включите автоматическое развертывание и, наконец, нажмите кнопку Deploy Branch. После нажатия этой кнопки наш бот будет развернут на Heroku. Затем перейдите на вкладку Resources и подождите, пока Dynamo не активируется, это занимает некоторое время, прежде чем вы сможете его включить.
Нажмите кнопку редактирования и включите Dynamo.
Вот и все! Теперь ваш бот работает и вы должны начать получать уведомления в Telegram, когда появляется работа с вашим заданным запросом.
Если у вас возникнут проблемы, пожалуйста, дайте мне знать в разделе комментариев или вы можете связаться со мной на LinkedIn
Резюме
Что мы узнали? Мы узнали:
- Как парсить портал фрилансеров с использованием API Freelancer
- Как создать телеграм-бота
- Как отправлять уведомления (ссылку на задание, на которое мы подали заявку) в телеграм-группу
- Как развернуть это на облачном сервере, чтобы оно работало 24/7
Точки оптимизации
Я постарался написать подробную статью и надеюсь, что мне это удалось. Но если вы не программист и хотите парсить данные и использовать их, вы можете связаться со мной на Freelancer
💬 Оставьте отзыв на эту статью, предоставив свои идеи, комментарии или запросы на будущие статьи.
📢 Поделитесь статьей с друзьями и коллегами в социальных сетях.
➕ Подписывайтесь на меня в Medium и читайте другие статьи.