@artsiom1976

Можно ли сделать бота для нажатия на кнопки?

выйграл когда-то пару месяцев бонус (как я понял - постоянный и скорее всего, что я пару лет назад там почти на биток пополнялся) на freebitcoin, даёт мне кран по 500 сатох в час, на обычных аккаунтах даётся там вроде 20 и есть ещё там разгон крана до 1000% обычного бонуса, то есть имеем в итоге 700 сатох в час, но суть не в этом, суть в том, что вместе с бонусом прилетела шара - жать кнопку сбора без капчи :)

можно ли на php организовать бота, который бы логинился, собирал и включал через определённое время разгон (для разгона нужны баллы, которые зависят от сбора), там нужно отдельную вкладку открыть, раскрыть аккордеон и активировать

честно скажу в курлах вообще полный ноль, но если бы дал кто-то может мануалы какие-то с нормальными примерами, то буду признателен

или может другое какое-то решение есть

p.s. на данный момент стоит тупо FireFox + iMacros, который собирает уже два месяца, но он тормозит ПК при других задачах и разгон нужно вручную контролировать, хотя и так неплохо
  • Вопрос задан
  • 317 просмотров
Пригласить эксперта
Ответы на вопрос 1
Ninazu
@Ninazu
1. Там за каждое нажатие кнопки без капчи, нужно заплатить 1 reward point
2. Капчу можно решить с помощью сервисов вроде rucaptcha

package main

import (
	"context"
	"fmt"
	"github.com/chromedp/cdproto/network"
	"github.com/chromedp/chromedp"
	"log"
	"time"
)

var (
	dir = "ПАПКА_КУДА_СОХРАНЯЮТСЯ_COOKIE"
	domain = "https://freebitco.in/"
	wait   = 3
	login = true //Выставить в false, после авторизации
)

func main() {
	opts := append(chromedp.DefaultExecAllocatorOptions[:],
		chromedp.DisableGPU,
		chromedp.NoDefaultBrowserCheck,
		chromedp.Flag("enable-automation", true),
		chromedp.Flag("use-mock-keychain", true),
		chromedp.Flag("headless", !login),
		chromedp.Flag("no-first-run", true),
		chromedp.Flag("no-sandbox", true),
		chromedp.Flag("ignore-certificate-errors", true),
		chromedp.Flag("user-data-dir", dir),
	)

	allocCtx, cancel := chromedp.NewExecAllocator(context.Background(), opts...)
	defer cancel()

	taskCtx, cancel := chromedp.NewContext(allocCtx, chromedp.WithLogf(log.Printf))
	defer cancel()

	if err := chromedp.Run(taskCtx); err != nil {
		panic(err)
	}

	var reward string

	err := chromedp.Run(taskCtx,
		network.Enable(),
		chromedp.Navigate(domain),
		chromedp.Action(chromedp.ActionFunc(func(ctx context.Context) error {
			time.Sleep(time.Duration(wait) * time.Second)

			return nil
		})),
		chromedp.WaitVisible(`#play_without_captchas_button`),
		chromedp.Click(`#play_without_captchas_button`, chromedp.NodeVisible),
		chromedp.Action(chromedp.ActionFunc(func(ctx context.Context) error {
			time.Sleep(time.Duration(wait) * time.Second)

			return nil
		})),
		chromedp.Click(`#free_play_form_button`, chromedp.NodeVisible),
		chromedp.Action(chromedp.ActionFunc(func(ctx context.Context) error {
			time.Sleep(time.Duration(wait) * time.Second)

			return nil
		})),
		chromedp.TextContent(`#winnings`, &reward),
	)

	if err != nil {
		panic(err)
	}

	fmt.Println(reward)
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы