Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как распарсить DOM ? (https://javascript.ru/forum/misc/65371-kak-rasparsit-dom.html)

Артист 15.10.2016 10:02

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

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

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

Как через document. найти эту строку?

warren buffet 15.10.2016 12:53

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

var div = document.createElement('div');
div.innerHTML=xhr.data; // например

Артист 15.10.2016 17:35

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

Так вот, текст который мне нужно получить находится в куче таблиц и прочего(тут даже самому можно запутаться), и чтобы его получить, придётся все их перебирать?

Rasy 15.10.2016 17:53

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

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

var doc = document.implementation.createHTMLDocument();
doc.documentElement.innerHTML = xhr.responseText;

warren buffet 16.10.2016 14:49

Цитата:

Сообщение от Rasy
у xhr нет свойства data

Нету - приделаем. )

Цитата:

implementation
Так хоть выучусь новому. Спс. )

Артист 16.10.2016 20:26

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

Может можно как - то с конца начать?

Rasy 16.10.2016 21:12

Артист,
Это не строка, а текстовый узел и для его поиска нет метода. Нужно либо найти все текстовые узлы на странице, либо найти близлежащий элемент возле узла и плясать от него. При условии, что элемент всегда на странице возле нашего текстового узла. Вопрос в том, что надо сделать с этим узлом?

Rasy 16.10.2016 21:16

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

Артист 17.10.2016 00:01

Цитата:

Сообщение от Rasy (Сообщение 431946)
Артист,
Это не строка, а текстовый узел и для его поиска нет метода. Нужно либо найти все текстовые узлы на странице, либо найти близлежащий элемент возле узла и плясать от него. При условии, что элемент всегда на странице возле нашего текстового узла. Вопрос в том, что надо сделать с этим узлом?

Да просто если эта строка есть на странице, то не выполнять функцию ))

Артист 17.10.2016 00:16

Цитата:

Сообщение от Rasy (Сообщение 431947)
var link = document.querySelector('a[href$=php]');
var str = link.previousSibling.textContent;
alert(str);

Спасибо, принцип понял )


Часовой пояс GMT +3, время: 16:33.