Хитрый парсер html-страничек

glukerrr

Guest
Хитрый парсер html-страничек

Добрый день!

Очень нужно написать хитрый преобразователь из html в ... тут без стакана не объяснить. Поэтому буду объяснять на примере.

Зайдите на какую-нибудь страничку. Да зачем ходить, давайте рассмотрим страничку на которую Вы сейчас смотрите. Она из себя представляет кучу всяких хтмл тэгов, стилей, и-фрэймов, форм и прочего барахла.

Теперь давайте нажмем на Ctrl+A - выделится весь контент на страничке, а потом жмем на Ctrl+Ins
Открываем какой-нибудь нотепад.. Главное, не какой-нибудь продвинутый редактор, типа ворда.. и делаем Shift+Ins

Видете что получилось ? Как сделать такое преобразование над html ?

Другой пример. Возьмите какую-нибудь хтмл страничку на вашем диске. открываем Total Commander (раньше навывался Windows Commander) и нажимаем на F3 на этой хтмл-ке.

Если вы видете до сих пор html код, то просто нажмите цифру 4 и все преобразуется (1- нормальный вид, 3-HEX)
Особенно советую посмотреть странички с таблицами данных.

Не знаю какой алгоритм использовал автор Тотала, но это примерно то что мне и нужно..

Слышай есть такой браузер lynx - консольный.. Он наверное фриварный и сорцы есть к нему. Но в них копаться думаю будет долго. Может быть кто-то сталкивался с подобной задачей и знает как тут можно помочь. Чтобы мне не начинать с нуля.

Большое спасибо
 

Фанат

oncle terrible
Команда форума
Поэтому буду объяснять на примере.
Это не пример, а беллетристика.
пример преобразования это:
Было: "Манчестер"
Стало: "Ливерпуль"
Вот это ПРИМЕР. Что из чего преобразовывать.
А то, что ты описал, больше напоминает шаманские пляски с бубном.

-~{}~ 17.10.04 17:30:

В общем, понятною.
Тебе нужен text-only rendering
Соответственно, совершенно правильно тебе написал Тони.
Тебе нужен никакой не преобразователь.
Тебе нужен БРАУЗЕР.
Ты хочешь написать ни больше ни меньше - браузер.
Ибо "преобразование хтмл-а в видимое представление" - это и есть рендеринг, которым заенимаются браузеры.

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

Если же исходить из самого факта ее формулировки, то очевидно, что это просто блажь, и то, что тебе надо, достигается совсем другими средствами.

И последнее.
К ПХП, как мы понимамем, вопрос рендеринга хтмл НИКАКОГО ОТНОШЕНИЯ НЕ ИМЕЕТ. Ну то есть абсолютно.
 

glukerrr

Guest
Мужчина, у Вас месячные ?
Накинулись на меня, спасибо, что не разорвали. Ребят, я занимался "беллетристикой" ибо хотел донести информацию до всех. Чтобы все поняли, что я хочу. Если бы я написал типа "Как реализовать рендеринг из html-кода странички в ее визуальное представление", то получилбы 1000 уточняющих вопросов. Я считаю, что поступил согласно ФАКу - сформулировал задачу так, чтобы ее все поняли. Если я в чем ошибся, господа администраторы укажите, что я сделал не так.

2. К php это имеет очень прямое отношение. Есть определенного рода информация в Internet. Нужно ее добывать. Т.е. написать спайдера. Информация на каждом сайте выводится по разному. В табличной форме, в виде <pre></pre> и т.д.
Есть одно верное утверждение, что если перевести любую из этих страничек в тот вид, что я хочу (рендеринг в визуальное отображение странички) , то можно вытягивать информацию с помощью регулярных выражений без проблем.

Итого, задача написания шаблона граббинга для каждой страницы сводится к задаче парсинга каждой странице к виду которому я написал.

3. Я не считаю, что задача простая.

4. Я ищу или готовые решения (продукты) или наработки в этой области (доступ к объектной модели?, модуль к пхп для парсинга хтмл?)

P.S. Фанат, пожалуйста не отвечай на мой вопрос =) Дабы не травмировать свою и мою психику.
Спасибо!
 

Фанат

oncle terrible
Команда форума
Есть одно верное утверждение, что если перевести любую из этих страничек в тот вид, что я хочу (рендеринг в визуальное отображение странички) , то можно вытягивать информацию с помощью регулярных выражений без проблем.
С этого места поподробнее.
Кто это утверждение высказал, и как доказал, что оно верное.
А я с удовольствием послушаею.

Эесли эту тему еще раньше не закроют, как противоречащую правилам форума, которые прямо запрещают обсуждение кражи контента.
 

michelle

Новичок
Re: Хитрый парсер html-страничек

Автор оригинала: glukerrr

Другой пример. Возьмите какую-нибудь хтмл страничку на вашем диске. открываем Total Commander (раньше навывался Windows Commander) и нажимаем на F3 на этой хтмл-ке.

Если вы видете до сих пор html код, то просто нажмите цифру 4 и все преобразуется (1- нормальный вид, 3-HEX)
Особенно советую посмотреть странички с таблицами данных.

Не знаю какой алгоритм использовал автор Тотала, но это примерно то что мне и нужно..
Насколько я понимаю Total Commander для отображения HTML берет какую-то AxtiveX компоненту IE!!!
 

Фанат

oncle terrible
Команда форума
michelle, ты не понял.
Это и неудивительно - желания нашего клиента меняются со скоростью звука.
Отображение его уже не интересует.
Его интересует преобразование тегов.
Ну, если только он не собрался использовать в своей задаче оптическое распознавание символов, конечно.

Такая тривиальная задачка - приведение произвольного дизайна к некоей унифицированной форме, "удобной для парсинга"
 

glukerrr

Guest
Originally posted by svetasmirnova
Попробуй
http://www.microbecal.com/php/container/array_find_test.php
Извини, просто как пример для http://pear.php.net/pepr/pepr-proposal-show.php?id=152 это делала, так что работает не так совершенно как в TotalCommander.;)
Привет, Светлана!
Забавный, скрипт. Спасибо! Но нашел в нем серьезный недостаток. Например,
<tr>
<td>x</td>
<td>x</td>
</tr>
<tr>
<td>y</td>
<td>y</td>
</tr>

Преобразуется в
x
x
y
y

А надо
x x
y y

=)
 
Сверху