Мониторинг новых заказов для фрилансера с помощью ZennoPoster.

specialist

Client
Регистрация
28.12.2018
Сообщения
674
Благодарностей
269
Баллы
63
Фриланс один из видов удаленной работы в интернете. Но в отличии от удаленной работы на определенную компанию на фрилансе постоянно нужно искать новые заказы, постоянно быть в курсе новинок и желательно хотя бы частично зарабатывать на арбитраже проектов.

Что возможно автоматизировать с помощью ZennoPoster:
1. Мониторинг новых заявок.
2. Поиск заказов на нескольких ресурсах одновременно.
3. Расширить источники для получения заказов: форумы и доски объявлений
4. Получение информации в удобном виде.
5. Взаимодействие с имеющимися инструментами. CRM системы.
6. Арбитраж заказов. Поиск исполнителей и автоматическая рассылка.

Возможности для автоматизации ничем не ограничены, например, возможно добавить автоматический ответ при появлении нового проекта.

Какие возможности ZennoPoster будут использованы:
1. Встроенный парсер
2. Проект в проекте
3. Списки, таблицы и работа с файлами
4. MySQL
5. HTTP запросы

Рассмотрим частично возможности, которые представляет зенопостер для автоматизации данного вида деятельности.

Приступаем к автоматизации. Находим новые заявки.

Для примера, получим новые заявки с freelance.ru

freelance_ru_main.png

Находим страницу, где размещены новые проекты

https://freelance.ru/projects/filter/

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

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

Описание и сумма обычно требует большого времени на ознакомление и изучение, чем беглый просмотр, поэтому их не собираем.

freelance_ru_names.png


Встроенным инструментом «Парсить данные» находим текст названия заданий. Добавляем их в проект в виде списка.
freelance_ru_links.png


Аналогично находим все ссылки на задания.

В ProjectMaker получаем примерно следующую структуру

freelnace_ru_project_maker_1.png


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

1) Как сохранить данные в удобном виде, для последующей обработки?

2) Как при следующем запуске получить только новые заказы, чтобы не просматривать повторно тоже самое, например при поднятии старого проекта?

Для дальнейшей обработки, нужно сохранить эти данные в виде массива или таблицы, поэтому начнем с самого простого, сохраним оба этих списка в виде xlsx таблицы.

Для этого создадим таблицу
freelnace_ru_project_maker_2.png


и привяжем её к xlsx файлу, в папке нашего проекта
freelnace_ru_project_maker_3.png



Теперь объединим два списка в виде таблицы. Через встроенные инструменты, это возможно сделать вот так способом:

freelnace_ru_project_maker_4.png

freelnace_ru_project_maker_5.png


Получаем первую строку списка с последующим удалением, для которых создаем переменные.

Далее, записываем результат в виде строки таблицы

freelnace_ru_project_maker_6.png


Данное действие повторяем в цикле до тех пор, пока не закончатся данные в списках.

Для этого дополнительно создаем счетчик количества строк в одном из списков (списки одинаковые по размеру)
freelnace_ru_project_maker_7.png


Повторяем действия в цикле с условием, пока счетчик строк не равен 0.

freelnace_ru_project_maker_9.png



Аналогично, данную задачу возможно решить использую C# код и методы project.Lists, project.Tables, list.Count, table.AddRow


Успешно выполнив данный проект, получаем простую таблицу.

freelnace_ru_excel_v1.png

В excel уже возможно отфильтровать данные и найти что-то стоящее.

Каждый последующий запуск будет добавлять новые строки.

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

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

Например. Из имеющейся таблицы возьмем 2 столбец, где указан url адрес. Добавим его в отдельный список. После этого в этот список будем добавлять в уже имеющемся цикле ссылки, которые спарсили, удалять дубли, если размер списка изменился, добавлять в таблицу.

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

Создаем базу данных и таблицу
freelance_ru_db1.png


Данные будем добавлять с помощью «INSERT IGNORE INTO …», поле url в таблице monitor, должно быть UNIQUE (уникальное поле).

Прописываем в ProjectMaker настройки для подключения и запрос. Кубик вставляем в цикл объединения в таблицу.
freelnace_ru_project_maker_10.png


Результат выполнения

freelance_ru_db2.png


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

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

freelnace_ru_project_maker_11.png

freelnace_ru_project_maker_12.png


Теперь, мы можем добавить другие источники, всего лишь заменив первую часть, в которой производится сбор данных. Для примера, возьмем форум webmasters.ru

webmasters_ru_project_maker.png

Нашли интересный для нас список тем

webmasters_ru_project_maker1.png


Заново добавили кубики парсера, но автоматическое назначение список изменили на List0 и List1, чтобы не переделывать код

webmasters_ru_project_maker2.png


Получили результат. Новые темы – последние в списке, при сортировке по уменьшению id всегда будут первыми.

Аналогично возможно проделать с любым сайтом.


CRM системы, обычно позволяют отправить данные POST запросом через API. Для отправки в данных можем использовать HTTP запросы.

Пример использования HTTP POST запроса, для передачи данных в CRM


webmasters_ru_project_maker3.png


Одним из способов запуска всех проектов является вариант проект в проекте.

Таким образом, мы можем добавить в настройки выбор, какие проекты нужно запустить сейчас, какие возможно позже.

Пример

projectinproject.png


Где найти исполнителя.

На многих сайтах есть каталоги исполнителей, например на freelance.ru
fl1.png

С данной страницы достаточно просто, возможно, спарсить email исполнителя

fl2.png


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

Вложения

Для запуска проектов требуется программа ZennoPoster.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...

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

Последнее редактирование:

tony11111

Client
Регистрация
29.11.2017
Сообщения
27
Благодарностей
52
Баллы
13
Просто и по делу. Очень доступно по работе с базой данных, спасибо.
 
  • Спасибо
Реакции: specialist

specialist

Client
Регистрация
28.12.2018
Сообщения
674
Благодарностей
269
Баллы
63
у них какая-то защита от зенки что-ли.
Не пробовал, возможно стоит попробовать хром версию браузера, там динамическая подгрузка данных.
Стоимость подписки 490, не видя примеры заданий не очень понятно за что хотят )
 

specialist

Client
Регистрация
28.12.2018
Сообщения
674
Благодарностей
269
Баллы
63
Небольшая подборка сайтов для монитора, сайты, доски, форумы
Код:
http://www.cyberforum.ru/job-offer/
https://forum.antichat.ru/forums/170/
https://free-lance.ua/
https://freelance.ru/projects/filter/
https://freelance.ua/
https://freelancehunt.com/projects
https://freelansim.ru/
https://irr.ru/jobs-education/vacancies/marketing-pr/
https://searchengines.guru/forumdisplay.php?s=053f4988dbb9ec53d4d482c5e5b638a2&f=62
https://www.avito.ru/rossiya/vakansii/it_internet_telekom/udalennaya_rabota?s_trg=3
https://www.fl.ru/projects/
https://www.gofuckbiz.com/forumdisplay.php?f=100
https://www.rabota.ru/vacancy/%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F%20%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0/
https://www.upwork.com/
https://www.weblancer.net/jobs/
http://webmasters.ru/forum/f157/
https://youla.ru/all/rabota/marketing-reklama-pr
 
  • Спасибо
Реакции: Pseudo и Zheka84

Zheka84

Client
Регистрация
13.10.2018
Сообщения
77
Благодарностей
9
Баллы
8
за подборку сайтов спасибо большое :-)
подскажите пожалуйста, на каких из бесплатных сайтов можно найти работу начинающему вебдизайнеру?
и какой из платных стоит внимания, что бы не прогадать?
И извините за офтоп...
 
  • Спасибо
Реакции: Hazar

specialist

Client
Регистрация
28.12.2018
Сообщения
674
Благодарностей
269
Баллы
63
какой из платных стоит внимания, что бы не прогадать?
fl.ru или freelance.ru - на них точно можно что-то найти по дизайну.
На отзывы внимание мало обращают, больше на портфолио, много не нужно, 3-7 работ достаточно.
 
  • Спасибо
Реакции: Zheka84

Zheka84

Client
Регистрация
13.10.2018
Сообщения
77
Благодарностей
9
Баллы
8

Kurator

Client
Регистрация
10.05.2016
Сообщения
28
Благодарностей
1
Баллы
3
Получили результат. Новые темы – последние в списке, при сортировке по уменьшению id всегда будут первыми. - Так, а что дальше делать, если нужно понять отработал ли бот по этому заказу или нет? Можно по подробнее?
 

specialist

Client
Регистрация
28.12.2018
Сообщения
674
Благодарностей
269
Баллы
63
отработал ли бот по этому заказу или нет
Я добавляю логический флаг в базу данных, кто-то просто логи сохраняет, вариантов достаточно много, даже обычный скрин инстанса и потом проверить в папке
 

Dexio

Client
Регистрация
09.05.2014
Сообщения
968
Благодарностей
117
Баллы
43
Может невнимательно прочитал. Но в чем смысл переходить на бд, вместо файла? Можно же даты создания записывать например
 

specialist

Client
Регистрация
28.12.2018
Сообщения
674
Благодарностей
269
Баллы
63
Но в чем смысл переходить на бд, вместо файла?
Смысл в том, что для интеграции с CRM или сервиса или размещения на сервере нужна база данных.
На файлах можно сделать что угодно, вопрос только в дальнейшем взаимодействии.
 

Vladimir71

Client
Регистрация
21.10.2015
Сообщения
76
Благодарностей
34
Баллы
18
Как поставить значение в базу данных как у вас в разделе дополнительно AUTO_INCREMENT я у себя что то не нашел нигде значения этого

спасибо заранее за ответ , я только учусь понемногу.
 

Vladimir71

Client
Регистрация
21.10.2015
Сообщения
76
Благодарностей
34
Баллы
18
И еще где можно найти статейки по работе с базами данных только желательно не заумных а по простому , если есть ссылки на форуме может кто знает скиньте пожалуйста , знания нужны .
:(
 

Vladimir71

Client
Регистрация
21.10.2015
Сообщения
76
Благодарностей
34
Баллы
18
спасибо большое разобрался , спасибо что ткнули меня носом где искать а индекс у меня вообще в другой вкладке находится я тестирую на локалхосте в опен сервере.
 

Ikigai

Client
Регистрация
13.12.2016
Сообщения
183
Благодарностей
15
Баллы
18
Существуют более простые способы, тем более у нас уже есть встроенный MySQL клиент.

Создаем базу данных и таблицу
А можно ли как то этот момент немного расписать или может сбросить ссылку на расскрытие данной темы. С базами данных ниразу не работал =(.
Заранее спасибо
 

romanss

Client
Регистрация
09.06.2010
Сообщения
165
Благодарностей
6
Баллы
18
На сайтах по моему профилю уже все автоматизировано.
Было бы интересно собирать горячие запросы пользователей к моим конкурентам вконтакте или фэйсбук. Программы такие реализованы. Но почему бы зенкой не крутить
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)