Полезная информация

Многие проблемы быстрее решаются поиском по форуму и чтением FAQ, чем созданием новой темы и томительным ожиданием ответа.

№121-03-2008 12:26:16

Logo
Участник
 
Группа: Members
Зарегистрирован: 13-03-2008
Сообщений: 69
UA: Mozilla 1.8

Есть ли такая программа?

Нужна программа, чтобы обходила все html фалы в папке, и в них удаляла все элементы, у которых display:none. Желательно не на IE движке.

Отсутствует

 

№221-03-2008 13:26:31

krigstask
друг народа
 
Группа: Members
Откуда: Rampova, Inkerimaa
Зарегистрирован: 13-09-2005
Сообщений: 4593
UA: Opera 9.2
Веб-сайт

Re: Есть ли такая программа?

Это задача для несложного сценария на Python/PHP/Perl


Ядрёная консоль делает меня сильней!

Отсутствует

 

№321-03-2008 19:57:04

Logo
Участник
 
Группа: Members
Зарегистрирован: 13-03-2008
Сообщений: 69
UA: Mozilla 1.8

Re: Есть ли такая программа?

krigstask 'несложным' сценарием неполучится. Такой скрипт должен загрузить, распарсить таблицы стилей, HTML валидатор короч как минимум получется.
Тут нужна прога на движке браузера.

Я иногда сохраняю сайты(прогой WinHTTrack)- различные книги, руководства. Чтобы потом читать на КПК. Удобно использовать CSS, чтобы отрубить рекламу и прочий мусор, но мобильные браузеры слабо его держат(IE особенно), кроме того страницы и так медленно рендрендятся, хорошо бы мусор совсем удалить.

Отредактировано Logo (21-03-2008 20:22:48)

Отсутствует

 

№421-03-2008 23:47:17

krigstask
друг народа
 
Группа: Members
Откуда: Rampova, Inkerimaa
Зарегистрирован: 13-09-2005
Сообщений: 4593
UA: Opera 9.2
Веб-сайт

Re: Есть ли такая программа?

Logo
Несогласен, но спорить не буду, движки бразуеров для такой задачи — забивание микроскопов гвоздями (-%Е


Ядрёная консоль делает меня сильней!

Отсутствует

 

№522-03-2008 01:00:26

Al_H
Away
 
Группа: Members
Откуда: SPb
Зарегистрирован: 10-06-2005
Сообщений: 5508
UA: Sunrise 1.6

Re: Есть ли такая программа?

Если без движка браузера, то нужно сделать маленькую программку, которая бы парсила HTML, выстраивала дерево объектов, затем парсила CSS в масштабах CSS2 или CSS2.1+часть CSS3, и, учитывая все селекторы, их вложенность, перекрытие стилей и так далее, рассчитывала display: none; для конкретных элементов, при этом для начала должны собираться все стили по всем linkам, importам, и конечно же контейнерам style и атрибутам style= и корректно рассчитываться весы элементов и порядок обработки и important, после чего делается вывод о порядке перекрытия стилей и уже вычисляется стиль для конкретного элемента. Затем мы все эти элементы собираем, и либо распарсиваем HTML и не нарушая вложенности тэгов удаляем, либо работаем с уже распарсенным, удаляя узлы из дерева тэгов. Не забывая при этом весь остальной код осталять в неприкосновенности. Раз плюнуть.

Отсутствует

 

№630-03-2008 16:54:17

Logo
Участник
 
Группа: Members
Зарегистрирован: 13-03-2008
Сообщений: 69
UA: Mozilla 1.8

Re: Есть ли такая программа?

Кстате можно сделать комбинированным PHP/JavaScript скриптом, и браузер тогда юзать любой. Вот кто бы еще сделал..

Отсутствует

 

№730-03-2008 17:25:50

krigstask
друг народа
 
Группа: Members
Откуда: Rampova, Inkerimaa
Зарегистрирован: 13-09-2005
Сообщений: 4593
UA: Opera 9.5
Веб-сайт

Re: Есть ли такая программа?

Al_H
Не надо усложнять, если используется отдельный внешний CSS для скрытия мусора (как я понял), то можно учитывать только его правила, пренебрегая всеми остальными вариантами присвоения display: none.

А как это сделать через бразуер? Хотя бы алгоритм поясните.


Есть альтернативное предложение: открывать страницы в Fx/Opera и "печатать" их в pdf. После чего смотреть уже в таком виде.


Ядрёная консоль делает меня сильней!

Отсутствует

 

№830-03-2008 18:04:21

Logo
Участник
 
Группа: Members
Зарегистрирован: 13-03-2008
Сообщений: 69
UA: Mozilla 1.8

Re: Есть ли такая программа?

Не надо усложнять, если используется отдельный внешний CSS для скрытия мусора (как я понял),

Это почти не облегчает задачи(если без браузера), одни селекторы чего стоят.

Есть альтернативное предложение: открывать страницы в Fx/Opera и "печатать" их в pdf. После чего смотреть уже в таком виде.

Это будет изображение, на сколько я понимаю, по этому не подойдет. Т.к. экран у КПК/смарта маленький, придется елозить в лево-право, что жуть не удобно.

А как это сделать через бразуер? Хотя бы алгоритм поясните.

В DOM должно быть свойтво типа .style.display, яваскрипт будет загружать передаваемый пхп файл во фрейм, удалять все элементы с этим свойством ='none', и передавть обработанный код обратно пхп через POST.

Отсутствует

 

№930-03-2008 18:13:48

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 2.0

Re: Есть ли такая программа?

В DOM должно быть свойтво типа .style.display

Тогда уж

Выделить код

Код:

var dspl = window.getComputedStyle(element, "").display;

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

Отсутствует

 

№1030-03-2008 18:49:16

krigstask
друг народа
 
Группа: Members
Откуда: Rampova, Inkerimaa
Зарегистрирован: 13-09-2005
Сообщений: 4593
UA: Opera 9.5
Веб-сайт

Re: Есть ли такая программа?

Logo

Это почти не облегчает задачи(если без браузера), одни селекторы чего стоят

Это смотря какие селекторы. По-моему, обычно для блокировки используются несложные конструкции.

Это будет изображение, на сколько я понимаю

С каких это пор PDF у нас — изображение? Хотя, конечно, если PDF-читалка не умеет строчки переносить, тогда проблема есть.

В DOM должно быть свойтво типа .style.display, яваскрипт будет загружать передаваемый пхп файл во фрейм, удалять все элементы с этим свойством ='none', и передавть обработанный код обратно пхп через POST

Логично. Кстати, это полностью подходит под моё первое сообщение (-%Е


Ядрёная консоль делает меня сильней!

Отсутствует

 

№1130-03-2008 19:11:07

Al_H
Away
 
Группа: Members
Откуда: SPb
Зарегистрирован: 10-06-2005
Сообщений: 5508
UA: Sunrise 1.6

Re: Есть ли такая программа?

krigstask
Да Вы понимаете, что для удаления не тех элементов, для которых прописано dasplay: none; , а тех, которые скрываются через display: none; - то есть с учетом наследования и переопределения и корректности синтаксиса, нужно писать движок, интерпретирующий CSS, и движок, интерпретирующий HTML. Задача класса создания нового браузера не на имеющемся движке. Потому что Вам нужно узнать 1. какие в итоге классы и прочие селекторы получают какие вычисленные значения атрибутов, 2. какие элементы и в какой иерархии должны составлять DOM документа, и 3. какие селекторы действуют на какие элементы. Потом в итоге Вы получаете DOM+computedStyle, и вот уже пройдя по нему удаляете лишние элементы, а затем из полученного DOM и исходного HTML составляете HTML без удаленных элементов. Если этот алгоритм сделать аккуратно, он не будет убивать в коде все конструкции, которые не понимает - типа вставок, символов национальных кодировок, атрибутов для клиентских скриптов, и прочего.
Вы считаете это тривиальной задачей?

Отсутствует

 

№1230-03-2008 19:40:24

krigstask
друг народа
 
Группа: Members
Откуда: Rampova, Inkerimaa
Зарегистрирован: 13-09-2005
Сообщений: 4593
UA: Opera 9.5
Веб-сайт

Re: Есть ли такая программа?

Al_H
Может, я неправ, но я вижу проблему так.
1. Дано:
[ul][uli]HTML-страница[/uli][uli]CSS-файл, фактически список элементов, подлежащих скрытию[/uli][/ul]
2. Примерный алгоритм действий:
[ol][oli]html-страница перегоняется в структуру, удобную для анализа (я недавно в рамках обучения Python'у загонял XML в список строк и кортежей из строк, булевых значений и словарей)[/oli][oli]обрабатывается список шаблонов элементов из CSS[/oli][oli]осуществляется проход по структуре из п. 1[/oli][oli]каждый элемент проверяется на соответствие условиям п. 2[/oli][oli]если элемент подлежит удалению, находится его граница и весь элемент удаляется[/oli][/ol]
Вот примерно так.

Добавлено Sun Mar 30 19:42:57 2008 :
Допущений, конечно, порядочно, но мне кажется, не слишком


Ядрёная консоль делает меня сильней!

Отсутствует

 

№1330-03-2008 21:29:14

Logo
Участник
 
Группа: Members
Зарегистрирован: 13-03-2008
Сообщений: 69
UA: Mozilla 1.8

Re: Есть ли такая программа?

Это смотря какие селекторы. По-моему, обычно для блокировки используются несложные конструкции.

Как раз наооборот, тут нужна вся мощь селекторов, ибо специальных атрибутов class и id мусор обычно не имеет.

С каких это пор PDF у нас — изображение? Хотя, конечно, если PDF-читалка не умеет строчки переносить, тогда проблема есть.

Написал не подумавши, сохранение страницы совсем не подойдет, т.к. на выходе у нас html книга/мануал со ссылками, множеством страниц..

•  CSS-файл, фактически список элементов, подлежащих скрытию

Там не просто список элементов, а селекторы, со всеми вытекающими...

Infocatcher

В js не очень шарю..

Отсутствует

 

№1430-03-2008 22:32:57

krigstask
друг народа
 
Группа: Members
Откуда: Rampova, Inkerimaa
Зарегистрирован: 13-09-2005
Сообщений: 4593
UA: Opera 9.5
Веб-сайт

Re: Есть ли такая программа?

Logo

Как раз наооборот, тут нужна вся мощь селекторов, ибо специальных атрибутов class и id мусор обычно не имеет

Там не просто список элементов, а селекторы, со всеми вытекающими...

Хватит пугать меня уже словом «селекторы», я его не боюсь (-;Е
Покажите уже примерный файл.

Написал не подумавши, сохранение страницы совсем не подойдет, т.к. на выходе у нас html книга/мануал со ссылками, множеством страниц..

А. Ну тогда да.


Ядрёная консоль делает меня сильней!

Отсутствует

 

№1530-03-2008 23:27:31

Logo
Участник
 
Группа: Members
Зарегистрирован: 13-03-2008
Сообщений: 69
UA: Mozilla 1.8

Re: Есть ли такая программа?

Ну вот хотябы писал такие правила

DIV.subtocyel {
  display:none;
}
body>img:first-child+table{ /*такую хрень хрен обработаешь*/
  display:none;
}

Поддержка селекторов должна быть полной, хорошо еще если + 3 версии. Это вовсе не простой скрипт.

Отсутствует

 

№1631-03-2008 01:19:39

krigstask
друг народа
 
Группа: Members
Откуда: Rampova, Inkerimaa
Зарегистрирован: 13-09-2005
Сообщений: 4593
UA: Opera 9.5
Веб-сайт

Re: Есть ли такая программа?

Ну да, вторая запись — дело серьёзное. Но я с необходимостью таких конструктов не сталкивался никогда. А первая — элементарно


Ядрёная консоль делает меня сильней!

Отсутствует

 

№1731-03-2008 08:24:56

Logo
Участник
 
Группа: Members
Зарегистрирован: 13-03-2008
Сообщений: 69
UA: Mozilla 1.8

Re: Есть ли такая программа?

Эт еще достаточно тривиально. Писалось чтоб это http://www.webix.ru/doc/html401 почиcтить.

Отсутствует

 

№1803-04-2008 19:50:19

alleex88
Участник
 
Группа: Members
Откуда: Boston
Зарегистрирован: 24-03-2008
Сообщений: 4
UA: Firefox 2.0
Веб-сайт

Re: Есть ли такая программа?

HTMLChanger ищи. Может заменять любой текст по заданым вхождениям в html файлах.

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]