Додайте свій проект безкоштовно і почніть отримувати пропозиції від фрілансерів-виконавців вже через хвилини після публікації!

Простой бот-кликер на 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
    ....




  1. ставка прихована фрілансером
  1. 22 дні22222 ₴
    Art System
     598   4   0

    Качественно выполним поставленную задачу.
    Skype: Team ArtSystem
    Mail: [email protected]
    Phone: +380997983974

    Україна Херсон | 23 березня о 10:06 |
  2.  фрілансер більше не працює на сервісі

Замовник
Проект опублікований
22 березня о 23:36
100 переглядів
Місцеположення виконавця
Україна Україна
Поділитися