Рутинная автоматизация
Есть задача, которую уже некоторое время хотелось бы решить, но никак руки не доходили, да и знаний в этой области практически нет.
Суть задачи такая: есть сайт (сторонний) "тыкалка". На странице имеется кнопка (изображение) со ссылкой вида pokeliga.com/entlink/adopts/xp_share.php?player=id_игрока. id_игрока числовое значение в интервале скажем от 1 до 8999. Кнопка может иметь 2 состояния - used и available. В случае если кнопка в состоянии used (была нажата или нет доступных), то ее не нажать, поэтому нужно ее пропустить и искать состояние available. Открывать в браузере 8999 вкладок это жесть, но можно ли как то автоматизировать все это дело в цикле, в котором происходит переход по ссылке, с последующим нажатием нужной кнопки на странице. Если это дело возможно, хотелось бы узнать в каком направлении стоит двигаться, какие данные могут понадобиться для такой реализации. В идеале помог бы простенький пример. |
можно, юзерскриптом перебрать минут за 5.
|
Спасибо, пошел смотреть материалы по этой теме
|
если в конечном итоге вся задача сводится к отправке 8999 аяксовых запросов со страницы, то скрипт можно написать в блокноте и выполнить в консольке
|
На каждой странице будет производиться один запрос, страниц всего 8999
|
Для этого подойдет document.location
|
В коде в качестве кнопки выступает изображение со ссылкой. Как у нее вызвать событие onclick()
|
document.querySelector("селектор изображения").click(); |
Почти получилось. Но проблема с циклом.
var id; var url = "http://pokeliga.com/entlink/adopts/xp_share.php?player=" for (id = 1; id <= 10; id++) { document.location.href = url+id; var used = document.getElementsByClassName("xp_share available"); if(used.length > 0){ var elements = document.querySelectorAll(".xp_share img"); var src = elements[0].click(); } else { break; } } Скрипт не идет дальше первой страницы и постоянно обновляется. Какие будут советы на этот счет? |
И не пойдет.
нужно получить текущий URL отрезать от него концовку прибавить к ней единицу и перейти по этому адресу. |
Часовой пояс GMT +3, время: 08:17. |