Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.03.2018, 13:50
Интересующийся
Отправить личное сообщение для geekvar Посмотреть профиль Найти все сообщения от geekvar
 
Регистрация: 06.03.2018
Сообщений: 12

Рутинная автоматизация
Есть задача, которую уже некоторое время хотелось бы решить, но никак руки не доходили, да и знаний в этой области практически нет.
Суть задачи такая: есть сайт (сторонний) "тыкалка". На странице имеется кнопка (изображение) со ссылкой вида pokeliga.com/entlink/adopts/xp_share.php?player=id_игрока. id_игрока числовое значение в интервале скажем от 1 до 8999. Кнопка может иметь 2 состояния - used и available. В случае если кнопка в состоянии used (была нажата или нет доступных), то ее не нажать, поэтому нужно ее пропустить и искать состояние available.
Открывать в браузере 8999 вкладок это жесть, но можно ли как то автоматизировать все это дело в цикле, в котором происходит переход по ссылке, с последующим нажатием нужной кнопки на странице.
Если это дело возможно, хотелось бы узнать в каком направлении стоит двигаться, какие данные могут понадобиться для такой реализации. В идеале помог бы простенький пример.
Ответить с цитированием
  #2 (permalink)  
Старый 06.03.2018, 16:21
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

можно, юзерскриптом перебрать минут за 5.
Ответить с цитированием
  #3 (permalink)  
Старый 06.03.2018, 18:47
Интересующийся
Отправить личное сообщение для geekvar Посмотреть профиль Найти все сообщения от geekvar
 
Регистрация: 06.03.2018
Сообщений: 12

Спасибо, пошел смотреть материалы по этой теме
Ответить с цитированием
  #4 (permalink)  
Старый 06.03.2018, 19:03
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

если в конечном итоге вся задача сводится к отправке 8999 аяксовых запросов со страницы, то скрипт можно написать в блокноте и выполнить в консольке
Ответить с цитированием
  #5 (permalink)  
Старый 06.03.2018, 21:40
Интересующийся
Отправить личное сообщение для geekvar Посмотреть профиль Найти все сообщения от geekvar
 
Регистрация: 06.03.2018
Сообщений: 12

На каждой странице будет производиться один запрос, страниц всего 8999
Ответить с цитированием
  #6 (permalink)  
Старый 06.03.2018, 21:45
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Для этого подойдет document.location
Ответить с цитированием
  #7 (permalink)  
Старый 06.03.2018, 22:13
Интересующийся
Отправить личное сообщение для geekvar Посмотреть профиль Найти все сообщения от geekvar
 
Регистрация: 06.03.2018
Сообщений: 12

В коде в качестве кнопки выступает изображение со ссылкой. Как у нее вызвать событие onclick()
Ответить с цитированием
  #8 (permalink)  
Старый 06.03.2018, 23:55
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

document.querySelector("селектор изображения").click();
Ответить с цитированием
  #9 (permalink)  
Старый 07.03.2018, 01:28
Интересующийся
Отправить личное сообщение для geekvar Посмотреть профиль Найти все сообщения от geekvar
 
Регистрация: 06.03.2018
Сообщений: 12

Почти получилось. Но проблема с циклом.
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;
     }
}

Скрипт не идет дальше первой страницы и постоянно обновляется. Какие будут советы на этот счет?
Ответить с цитированием
  #10 (permalink)  
Старый 07.03.2018, 01:32
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

И не пойдет.
нужно получить текущий URL отрезать от него концовку прибавить к ней единицу и перейти по этому адресу.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Препроцессоры SASS и LESS. Автоматизация Front-end разработки torsar (X)HTML/CSS 5 03.08.2017 17:40
Автоматизация записи изменений вкладки в лог в google spreadsheets ILF_ollie Общие вопросы Javascript 2 05.02.2016 19:02
jPlayer автоматизация плейлиста apaxicko jQuery 1 28.04.2014 08:36
Автоматизация слайдера IVAAAAN jQuery 1 25.10.2013 17:37
Автоматизация карусели veus Events/DOM/Window 2 01.07.2013 22:14