Как распарсить DOM ?
Вложений: 1
Поставил обработчик переходов по ссылкам, поставил фильтры.
Но сайт динамический и на 1й и той же странице могут быть разные данные. Вот теперь нужно отсеять 1из вариантов. Страница огромная: Вложение 3316 И только в самом низу: Во время пути Вам доступны Как через document. найти эту строку? |
DOM - это Document Object Model. Все уже отпарсено. Если получаешь html как текст, парсишь его закидывая в любой элемент
var div = document.createElement('div'); div.innerHTML=xhr.data; // например |
Ну я не особо волоку в этом(мягко сказано). :)
Я отлавливаю событие, когда открыта страница и все элементы прогружены(кроме картинок). Где - то видел, что ищется через document... А текст(ответ при запросе) я через indexOf всё делал... Так вот, текст который мне нужно получить находится в куче таблиц и прочего(тут даже самому можно запутаться), и чтобы его получить, придётся все их перебирать? |
Или используешь объект implementation.
warren buffet, у xhr нет свойства data:) var doc = document.implementation.createHTMLDocument(); doc.documentElement.innerHTML = xhr.responseText; |
Цитата:
Цитата:
|
Не, значит не распарсить, а просто найти строку на странице.
Может можно как - то с конца начать? |
Артист,
Это не строка, а текстовый узел и для его поиска нет метода. Нужно либо найти все текстовые узлы на странице, либо найти близлежащий элемент возле узла и плясать от него. При условии, что элемент всегда на странице возле нашего текстового узла. Вопрос в том, что надо сделать с этим узлом? |
var link = document.querySelector('a[href$=php]'); var str = link.previousSibling.textContent; alert(str); |
Цитата:
|
Цитата:
|
Блин, я думаю, чего у меня null всё время показывает querySelector(с любым тегом).
Проверил: alert(document.documentElement.innerHTML) Оказывается document берёт не из той страницы, которая открылась, а из страницы, на которой подключен скрипт(я её не подключал, видимо хром сам). <head></head><body><script src="background.js"></script></body> |
Артист, html - это текст, но ковырять его самому не надо. Ты же не станешь ковырять файл екзеля ради редактирования таблицы. Ты напишешь скрипт работающий с документом как с объектом. Для браузера хтмл - такой же документ и браузер делает из него объект. Поскольку документ описан в иерархических сущностях хтмл, то и объект представляет из себя дерево. Вот и лазай по нему, или лазий.
Почитай документацию уже. |
Да я полазил бы - не лазиется...
Я в фоновом скрипте отлавливаю когда в браузере страница открылась и все элементы прогружены. А document не видит эту страницу, видит только страницу с которой подключен скрипт... Смотрел исходники ABP Block'a, он же как - то убирает со страницы элементы. И ничего не нашел. Вернее нашел, но не работает. Пробовал так: alert(window.document.documentElement.innerHTML) alert(this.window.document.documentElement.innerHTML) Ещё находил там(в исходниках), event.tabId , смотрел там номер возвращает, может от него надо получать... |
Цитата:
Вот тут про webNavigation И там вообще ничего нет, как получить что - то со страницы... |
Артист, ты юзерский скрипт что ли пишешь, или какой-то поддон?
Поставь на FF - Greasemonkey и отстань от этого тупого хрома навсегда. |
Цитата:
|
Ну, есть игра одна браузерная, мне надоело что невозможно что - то продать в игре, т.к. 7к игроков онлайна.
Ну я накатал приложение которое всё автоматом продаёт, и теперь хочу сделать чтобы не по кнопке щелкать для этого дела, а просто поставил галочку, и пускай он ходит по карте да торгует. Думал прямо на странице сделать 2 кнопки(или чекбоксы)... Ну и вот нужно отловить, когда перс пришёл... Цитата:
|
Вот тут описывается как это сделать, а я не понимаю, т.к. вообще не знаю JS.
Внедрение Javascript-кода в страницу через Chrome Extension Цитата:
|
Ну так парсить не надо ничего. И вообще ты не ту рубрику полез, поэтому тебя и не понимают. Есть раздел для юзерских скриптов - который под браузер. Тебе нужен спец по такой писанине для хрома.
В упомянутом GM юзерский скрипт ничем от обычного не отличается. Почему в хроме какие-то дебильные заморочки, я не понял. В общем если дело ограничивается работой с документом, то в ГМ пишут вот так var elem=document.querySelector('.foo'); и все работает, в точности как если бы оно было в скрипте загруженным со страницей. А вот когда тебе захочется забраться в кишки этих самых скриптов, там есть небольшой геморрой с интерфейсом UnsafeWindow, но через него почти все можно получить по части кодов страницы - переменные, функции, писать, запускать и все такое. И только в редких случаях, когда не получается добраться нормально, тогда приходится что-то парсить. Но такое ну очень редко бывает. |
Цитата:
Какой нахер аякс? Скрипт для браузера хранится локально. Ты куда полез вообще? |
А, блеать, хабр! Это же психушка, держись от хабра подальше, залечут.
Короче, какой нахер аякс? Откуда ты свой скрипт кОчать собираешься? С публичного репозитория какого-то? Да это пипец какой-то бредятина, убей все нахер. |
Кажется понял. Это психи из скрипта видимо делают расширение для Хрома. Ну, то есть, задача прямо противоположная. У габровца есть скрипт на сервере, он его закачивает через какую-то шнягу и в хроме и, - в браузере, а не на странице - появляется фича, скажем пункт меню, или кнопка, или еще какая-то хрень.
|
Написали уже песочницы для юзерских скриптов, вот так ищи
user script for chrome Там сразу все идет и в середине Хромиум - был такой дебилизм, кажется еще есть. Гугли по тем словам и качай и ставь и будут читы. ЗЫ Если писать аддон - так пиши аддон нормально. Но нафига козе баян? |
Понял теперь как )) Спасиб.
Надо через манифест, "content_scripts"... |
Ну да, тебе этого не надо, у тебя же персонаж там, господи, даже на персонаже не хотят нормально учиться, все делают через жопу, прав был Фрейд с анальной фиксацией )))
|
Часовой пояс GMT +3, время: 12:50. |