|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Парсинг html-страницы |
|
|
VBS/WSH/JS - [решено] Парсинг html-страницы
|
Ветеран Сообщения: 1639 |
Приветствую!
Возникла необходимость отслеживать на сайте фифы доступность билетов. Есть список интересующих матчей, которые нужно мониторить. Алгоритм придумал следующий: 1. Формирую массив MatchName, состоящий из названий необходимых для отслеживания матчей: - Матч 01 - Россия : Саудовская Аравия - Москва «Лужники» - Матч 07 - Аргентина : Исландия - Москва «Спартак» - Матч 11 - Германия : Мексика - Москва «Лужники» 2. Поочередно получаю в NodeList дивы с классом "header" (див внутри первого столбец таблицы) и заглядываю внутрь каждого (через innerText), сверяя название текущего матча с первым элементом массива MatchName: <div class="header" ng-bind="product.productName">Матч 01 - Россия : Саудовская Аравия - Москва «Лужники»</div> Ключевое - это определить класс "class="categoryBox zeroAvailability" - т.е. если этот класс НЕ "zeroAvailability", то далее кидается алерт. 4. Аналогично пройтись по остальным элементам массива MatchName. Ну в общем, я начал: Option Explicit Const READYSTATE_COMPLETE = 4 Const TimeOut = 10000 Const link = "https://tickets.fifa.com/Services/ADService.html?lang=ru" Dim objNodeList, i, j Dim MatchName(2) ' массив из искомых названий матчей MatchName(0) = "Матч 01 - Россия : Саудовская Аравия - Москва «Лужники»" MatchName(1) = "Матч 07 - Аргентина : Исландия - Москва «Спартак»" MatchName(2) = "Матч 11 - Германия : Мексика - Москва «Лужники»" With WScript.CreateObject("InternetExplorer.Application") .Visible = False .Navigate(link) Do WScript.Sleep TimeOut ' ожидаем загрузку страницы Loop Until Not .Busy And .ReadyState = READYSTATE_COMPLETE objNodeList = .document.getElementsByClassName("header") ' получаем в NodeList все элементы с указанным классом For i = 0 to 2 Step 1 For j = 0 to objNodeList.length Step 1 ' !!! Ошибка: "Требуется объект '[object HTMLCollection]' ' ... Next Next Set objNodeList = Nothing .Quit End With WScript.Quit 0 Вопросы следующие: 1. Понять не могу в чем ошибка. objNodeList - это NodeList, который представляет собой массив из Element'ов. Почему я не могу получить длину этого массива? 2. Вопрос касательно общего алгоритма... Может быть как-то задачу попроще можно решить или логика моя пойдет? 3. Если возможно, то подскажите, пожалуйста, каким образом можно перемещаться по соседним div'ам (из пункта 3. алгоритма)? Спасибо! |
|
Отправлено: 16:55, 07-05-2018 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать The_Immortal, нынче все браузеры достаточно сблизились в своих трактовках «как оно должно быть». Попробуйте прогнать его под IE 6/7/8. Попробуйте прогнать свой код под IE 6/7/8. Кроме отсутствия свойства .nextElementSibling наверняка не будет и фантомных текстовых элементов.
|
Отправлено: 23:34, 12-05-2018 | #21 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
PowerShell - Парсинг HTML, Parser HTML | dosperados | Скриптовые языки администрирования Windows | 6 | 15-04-2016 08:46 | |
CMD/BAT - Парсинг HTML | Smasher | Скриптовые языки администрирования Windows | 14 | 25-09-2012 20:45 | |
[решено] Парсинг страницы с редиректом (PHP) | Luzuk | Вебмастеру | 3 | 16-03-2012 18:06 | |
Отображение HTML страницы в окне | assch | AutoIt | 3 | 10-08-2009 14:58 | |
Медиа - автозапуск html страницы с CD | WChek | Хочу все знать | 38 | 09-06-2008 15:23 |
|