Задать вопрос
@pixx

Алгоритм определения визуально скрытых HTMLDom элементов?

Есть задача: по коду html-страницы программно определить список скрытых (не видимых глазом) html элементов.

Первое что приходит в голову: взять node.js + jquery (habrahabr.ru/blogs/javascript/104761) и поиграть с псевдоселектором :visible, но есть сомнение, что в данном случае не будут учитываться css файлы.



Вопрос знатокам: можно ли научить данную свзяку учитывать css файлы и как это сделать?



PS. также буду благодарен другим способам решения задачи на базе linux.
  • Вопрос задан
  • 2594 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 1
m00t
@m00t
Если не ломает запускать на сервере полноценный браузер — посмотрите в сторону Selenium. Имели опыт написания парсеров/грабберов на нем — есть API для практически любого языка (сами на PHP писали).
Коротко о нем: запускается браузер, и работа ведется непосредственно с уже отрендеренной в браузере страницей. Так что обрабатываются и css, и $('#element').hide() всякие.
Плюс запуск «на поиграться посмотреть» достаточно прост, что не маловажно.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
@yadaya
Я бы:
1. Спарсил CSS на наличие :hidden, на выходе массив стилей скрывающих элементы.
2. Парсинг HTML включение только элементов с :hidden и имеющих стиль из массива CSS(п.1).

Парсинг уже чем кому удобней +)
Ответ написан
@Aquahawk
Это невозможно в рамках поставленной задачи. Формулируйте задачу конкретнее. Т.к. от ширины экрана отображающего устройства видимость объектов изменется. Когда я писал антиспам для ворпресса я стандартную форму ввода двинул на 3000 пикселей влево, а не выставлял :hidden, т.к. некоторые боты парсят :hidden. С точки зрения юзера же не видно ни то ни другое. Другое дело если вам надо найти элементы которые никогда не могут быть показаны, это уже более реальная задача.
Ответ написан
nikel303
@nikel303
Может так?
offsetHeight == 0? hidden: visible
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 дек. 2024, в 20:40
10000 руб./за проект
22 дек. 2024, в 20:34
3000 руб./за проект
22 дек. 2024, в 20:12
10000 руб./за проект