Простой бот-кликер на nodejs
Краткая суть:
Бот ходит по страницам одного e-commerce сайта и кликает на определенные ссылки через рассчитанные промежутки времени.
Особенности:
- Используем прокси сервер
- Все промежутки времени "рандомизируем" +- 75% от исходного значения. Хорошая библиотека для этого http://chancejs.com/
- Страницы открываем с фейковым user-agent. Генерим его с помощью подобного модуля https://www.npmjs.com/package/random-fake-useragent
- Ведем онлайн лог своих действий используя http://console.re/
На входе JSON:
{
"products": [
{
"SKU": "123456789",
"clicks": "100",
"hours": "5"
},
{
"SKU": "987654321",
"clicks": "200",
"hours": "3"
}
],
"keywords": [ "keyword1", "keyword2", "keyword3", "keyword4"]
}
Количество products от 1 и выше, количество keywords тоже.
Алгоритм работы:
Сначала, считаем частоту "F" кликов для каждого SKU.
Например: "123456789" мы хотим 100 кликов за 5 часов. Значит клик должен происходить в среднем 1 раз в 3 минуты.
Начало рабочего цикла
- Генерим URL : http://......./keyword1 (случайно выбираем из массива keywords)
- Открываем этот URL (через прокси и с fake user-agent) и сохраняем HTML страницы для последующей обработки
- Перебираем SKU по одному. Смотрим, прошло ли "F" минут с момента последнего клика на этот SKU.
"F "минут — это частота кликов для этого SKU. Частоту при проверке рандомизируем +- 75% от исходного значения. - Если "F" минут больше чем прошло с последнего клика, — ищем на сохраненной странице с помощью "Cheerio" определенную ссылку по текущему SKU (подробнее позже) и открываем ее, но не сразу а через random(15) секунд
- Уменьшаем счетчик оставшихся кликов для этого SKU, сохраняем время последнего клика.
С вероятностью 0.3 "кликаем" случайную ссылку с только что открытой страницы. Все, этот SKU обработан, переходим к следующему.
Когда мы прошли все SKU для текущего случайного "keyword", то цикл закончен. Запускаем его же снова через (Fmin +- 75%) секунд. "Fmin" это самая высокая частота кликов, из тех, что посчитали вначале. Например: SKU1 нужно кликать раз в 10 минут, а SKU2 раз в 3 минуты. Мы будем запускать цикл каждые 3 минуты, но SKU1 2 раза пропустится, потому что еще не прошло 10 минут с момента последнего клика.
Если мы все скликали и ни у одного из SKU нет больше кликов, то не рестартуем цикл, и ждем новых "заданий"
Если на вход поступает JSON пока цикл еще работает, пишем об этом в лог, JSON игнорим, работу не прерываем.
Предусмотреть специальный RESET ключ в JSON объекте, получив который, мы прерываем текущий цикл и ждем новых "заданий".
Все происходящее пишем в re.log, например:
- Кликаем случайную ссылку после перехода на
- Открыли страницу поиска с таким-то keyword
- Кликаем SKU1 осталось кликов 29
- Кликаем SKU2 осталось кликов 14
....
-
209 4 0 Качественно выполним поставленную задачу.
Skype: Team ArtSystem
Mail: [email protected]
Phone: +380997983974
Актуальные фриланс-проекты в категории Javascript и Typescript
Интернет-магазин одеждыНужен разработчик для интернет-магазина одежды Ищу опытного разработчика для создания полноценного интернет-магазина одежды с дроп-моделью продаж. Что нужно сделать: 6 страниц: главная, товар, корзина, оформление, аккаунт, админ панель Вход через Google аккаунт Корзина и… HTML и CSS верстка, Javascript и Typescript ∙ 22 минуты назад ∙ 20 ставок |
Full-stack разработка — Amazon PPC Dashboard (Stage 1)Нужен full-stack разработчик с опытом работы с Amazon API для реализации Stage 1 внутреннего PPC-дашборда. Проект реальный, данные живые, всё готово к старту. Прототип фронтенда (5 страниц, React + TypeScript): ЧТО УЖЕ ГОТОВО — Фронтенд-прототип на React 18 + TypeScript + Vite… Javascript и Typescript, Веб-программирование ∙ 2 дня 11 часов назад ∙ 28 ставок |
Разработка сайта-конструктора фотокниг и фоторамокЦель проекта Необходимо разработать современный веб-сайт для заказа фотокниг, фоторамок и другой персонализированной фотопродукции. Главная задача проекта — предоставить клиенту возможность самостоятельно создать готовый макет изделия непосредственно на сайте без участия… Javascript и Typescript, Веб-программирование ∙ 4 дня 3 часа назад ∙ 96 ставок |
Команда для самописного маркетплейса ритуальных услуг.Ищем команду для запуска и развития самописного национального маркетплейса ритуальных услуг. Сразу: не ищем одиночек, джунов и “сборщиков сайтов”. Нужна сильная продуктовая команда уровня middle+/senior с реальными кейсами маркетплейсов/сложных SaaS. Просьба не откликаться,… Javascript и Typescript, Веб-программирование ∙ 4 дня 21 час назад ∙ 27 ставок |
Доработка существующего Next.js/Supabase проекта: офферы, CRM, аналитика, AI-чатЕсть действующий проект WatchGenius — платформа аналитики люксовых часов с каталогом моделей, ценовой аналитикой, внешними офферами, формами заявок и AI-чатом. Проект уже разработан частично. Нужен не сайт с нуля, а опытный full-stack разработчик, который сможет разобраться в… Javascript и Typescript, Веб-программирование ∙ 6 дней 23 часа назад ∙ 55 ставок |