2016-09-06 2 views
-1

Ну, я хочу построить бота, который нажимает кнопку после количества времени, как каждые 5 часов, как я могу это сделать? Я предпочитаю в PHP, но если есть какой-либо другой язык, который вам известен, я знаю также C#, Java, JS .. любые предложения для начала, я просто никогда не делал этого раньше, и я хочу научиться, как это сделать , я искал, ничего не нашел. Большое спасибо !. Я уже пробовал в Chrome, что кнопка посылает, и он отправляет javascripts: void (0) что-то вроде и location.href = /Blah/blaahh.php.нажмите кнопку программно на веб-сайте

+0

что делает кнопка? если он отправляет запрос, вместо нажатия кнопки, которую вы действительно хотите имитировать, самый простой способ сделать это в php - с CURL. Кнопка, вероятно, не имеет значения, подумайте об этом просто как триггер для этого запроса. – ArtisticPhoenix

ответ

0

Вы должны использовать setTimeout на каждые n < 10 секунд, чтобы предотвратить спящий режим браузера, setInterval с часами не очень хорошая идея.

На мой взгляд, лучшие два способа реализации что-то вроде этого является:

  1. Node.js
  2. SetTimeout каждые 10 секунд и петли на одной и той же функции, и каждый раз проверить, если последний клик был 5 часов назад.

Javascript Пример setTimeout:

var CLICK_EVERY_TIME = 10 * 1000; // i choosed to click every 10 sec 
 
var clickCount = 0; 
 
var lastClick = 0; 
 
var loops = 0; 
 
$(window).ready(function(){ 
 
    
 
    // on page load start you auto clicker 
 
    runner(); 
 
}); 
 

 
function performClick(){ 
 
    clickCount++; 
 
    $('#clickCount').html("clicks: "+clickCount); 
 
    
 
    // save last click time 
 
    lastClick = new Date().getTime(); 
 
} 
 

 
function runner(){ 
 
    loops++; 
 
    var currentTime = new Date().getTime(); 
 
    if(currentTime - Number(lastClick) > CLICK_EVERY_TIME){ 
 
    performClick(); 
 
    } 
 
    $('#loops').html("runner: "+loops+" loops"); 
 
    setTimeout(runner, 1000); // every 1 seconds 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div id="clickCount">clicks: 0</div> 
 
<div id="loops">runner: 0 loops</div>

Node.js:

Вы должны использовать jsdom имитировать браузер и выполнять ваши клики. Примечание: В Node.js вы можете использовать setInterval с часами, как вы хотите, так как Node.js на автономном процессе.

1

Итак, в основном ваш вопрос: programmatically click a button и вызвать его в определенном time interval. Так что пришла мне на ум решение ниже:

<script> 
    setInterval(function(){ 
    $('#button').trigger('click'); 
    }, 3000); 
</sctipt> 

Код выше будет trigger и кнопка будет срабатывать, как щелкнул, и это будет иметь место для каждого периода времени. После нажатия кнопки попробуйте добавить некоторую функцию для обработки события после того, как кнопка будет технически нажата.

Надеюсь, что это поможет =)

Смежные вопросы