Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.10.2016, 10:02
Профессор
Отправить личное сообщение для Артист Посмотреть профиль Найти все сообщения от Артист
 
Регистрация: 25.09.2016
Сообщений: 163

Как распарсить DOM ?
Поставил обработчик переходов по ссылкам, поставил фильтры.
Но сайт динамический и на 1й и той же странице могут быть разные данные.

Вот теперь нужно отсеять 1из вариантов.
Страница огромная:
new 1.zip

И только в самом низу:
Во время пути Вам доступны

Как через document. найти эту строку?
Ответить с цитированием
  #2 (permalink)  
Старый 15.10.2016, 12:53
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

DOM - это Document Object Model. Все уже отпарсено. Если получаешь html как текст, парсишь его закидывая в любой элемент

var div = document.createElement('div');
div.innerHTML=xhr.data; // например
Ответить с цитированием
  #3 (permalink)  
Старый 15.10.2016, 17:35
Профессор
Отправить личное сообщение для Артист Посмотреть профиль Найти все сообщения от Артист
 
Регистрация: 25.09.2016
Сообщений: 163

Ну я не особо волоку в этом(мягко сказано).
Я отлавливаю событие, когда открыта страница и все элементы прогружены(кроме картинок).
Где - то видел, что ищется через document...
А текст(ответ при запросе) я через indexOf всё делал...

Так вот, текст который мне нужно получить находится в куче таблиц и прочего(тут даже самому можно запутаться), и чтобы его получить, придётся все их перебирать?
Ответить с цитированием
  #4 (permalink)  
Старый 15.10.2016, 17:53
Профессор
Отправить личное сообщение для Rasy Посмотреть профиль Найти все сообщения от Rasy
 
Регистрация: 17.06.2016
Сообщений: 509

Или используешь объект implementation.

warren buffet,
у xhr нет свойства data

var doc = document.implementation.createHTMLDocument();
doc.documentElement.innerHTML = xhr.responseText;
Ответить с цитированием
  #5 (permalink)  
Старый 16.10.2016, 14:49
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Сообщение от Rasy
у xhr нет свойства data
Нету - приделаем. )

Цитата:
implementation
Так хоть выучусь новому. Спс. )
Ответить с цитированием
  #6 (permalink)  
Старый 16.10.2016, 20:26
Профессор
Отправить личное сообщение для Артист Посмотреть профиль Найти все сообщения от Артист
 
Регистрация: 25.09.2016
Сообщений: 163

Не, значит не распарсить, а просто найти строку на странице.

Может можно как - то с конца начать?
Ответить с цитированием
  #7 (permalink)  
Старый 16.10.2016, 21:12
Профессор
Отправить личное сообщение для Rasy Посмотреть профиль Найти все сообщения от Rasy
 
Регистрация: 17.06.2016
Сообщений: 509

Артист,
Это не строка, а текстовый узел и для его поиска нет метода. Нужно либо найти все текстовые узлы на странице, либо найти близлежащий элемент возле узла и плясать от него. При условии, что элемент всегда на странице возле нашего текстового узла. Вопрос в том, что надо сделать с этим узлом?
Ответить с цитированием
  #8 (permalink)  
Старый 16.10.2016, 21:16
Профессор
Отправить личное сообщение для Rasy Посмотреть профиль Найти все сообщения от Rasy
 
Регистрация: 17.06.2016
Сообщений: 509

var link = document.querySelector('a[href$=php]');
var str = link.previousSibling.textContent;
alert(str);

Последний раз редактировалось Rasy, 16.10.2016 в 21:19.
Ответить с цитированием
  #9 (permalink)  
Старый 17.10.2016, 00:01
Профессор
Отправить личное сообщение для Артист Посмотреть профиль Найти все сообщения от Артист
 
Регистрация: 25.09.2016
Сообщений: 163

Сообщение от Rasy Посмотреть сообщение
Артист,
Это не строка, а текстовый узел и для его поиска нет метода. Нужно либо найти все текстовые узлы на странице, либо найти близлежащий элемент возле узла и плясать от него. При условии, что элемент всегда на странице возле нашего текстового узла. Вопрос в том, что надо сделать с этим узлом?
Да просто если эта строка есть на странице, то не выполнять функцию ))
Ответить с цитированием
  #10 (permalink)  
Старый 17.10.2016, 00:16
Профессор
Отправить личное сообщение для Артист Посмотреть профиль Найти все сообщения от Артист
 
Регистрация: 25.09.2016
Сообщений: 163

Сообщение от Rasy Посмотреть сообщение
var link = document.querySelector('a[href$=php]');
var str = link.previousSibling.textContent;
alert(str);
Спасибо, принцип понял )
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как заставить скрипт обновить свои знания о dom? l-liava-l Оффтопик 6 21.02.2013 16:21
Перевод на новую строку JS воспринимает как объект DOM Rig Events/DOM/Window 6 26.12.2011 20:08
как удалить элемент в DOM? czp Общие вопросы Javascript 11 17.12.2011 20:55
Как сохранить текущий DOM в html-страницу kukuyok Серверные языки и технологии 1 23.03.2011 20:27
Как узнать содержит ли DOM определенный элемент Ruslan Events/DOM/Window 8 12.03.2010 22:02