Простой бот-кликер на 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
Current freelance projects in the category Javascript and Typescript
Consultation and audit of the current project on Odoo 19 Community EditionWe are looking for an Odoo Developer — a solo developer with experience in Odoo 19 Community Edition, including using Claude Code. We need a specialist who has successfully implemented projects in Odoo and practical experience in development using Claude Code. Important: we only… C & C++, Javascript and Typescript ∙ 2 hours 12 minutes back ∙ 3 proposals |
Online clothing storeNeed a developer for an online clothing store Looking for an experienced developer to create a full-fledged online clothing store with a drop model of sales. What needs to be done: 6 pages: home, product, cart, checkout, account, admin panel Login via Google account Cart and… HTML & CSS, Javascript and Typescript ∙ 1 day 23 hours back ∙ 93 proposals |
Full-stack development — Amazon PPC Dashboard (Stage 1)Need a full-stack developer with experience working with Amazon API to implement Stage 1 of the internal PPC dashboard. The project is real, the data is live, everything is ready to start. Frontend prototype (5 pages, React + TypeScript): WHAT IS ALREADY READY — Frontend… Javascript and Typescript, Web Programming ∙ 4 days 10 hours back ∙ 31 proposals |
Development of a photo book and photo frame constructor websiteProject Goal A modern website needs to be developed for ordering photo books, photo frames, and other personalized photo products. The main task of the project is to provide the client with the ability to independently create a ready-made layout of the product directly on the… Javascript and Typescript, Web Programming ∙ 6 days 2 hours back ∙ 98 proposals |
Team for a custom marketplace of funeral services.We are looking for a team to launch and develop a custom national marketplace for funeral services. Right away: we are not looking for solo freelancers, juniors, or "website builders." We need a strong product team at the middle+/senior level with real cases in… Javascript and Typescript, Web Programming ∙ 6 days 20 hours back ∙ 27 proposals |