Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получение текста из HTML файла 
:(
    Опции темы
GrafCharodey
Дата 19.12.2006, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 14.12.2006

Репутация: нет
Всего: нет



Здравствуйте!

Мне понадобилось написать программу которая выдерала бы текст из html файла без тегов. Причём учитывая тот текст который содержится в alt. Существуют ли функции распознавания тегов, или что либо похожее? Или же всё же придётся разрабатывать алгоритм с самого начала?

Заранее благодарен!
PM MAIL ICQ   Вверх
Sartorius
Дата 19.12.2006, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1568
Регистрация: 18.7.2006
Где: Ivory tower

Репутация: нет
Всего: 37



 Да алгоритм-то тут простой : выдаешь на выход все , пока не встретишь "<"  , а потом крутишь до ">" и снова все на выход. Ну аlt отдельно придется обработать.
PM MAIL ICQ   Вверх
GrafCharodey
Дата 19.12.2006, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 14.12.2006

Репутация: нет
Всего: нет



Ну в принципе да... Спасибо... 
Единственное что там могут встречаться ключевые символы, но и они начинаются с &.
PM MAIL ICQ   Вверх
GrafCharodey
Дата 19.12.2006, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 14.12.2006

Репутация: нет
Всего: нет



Всётаки алгоритм по просмотру '<' '>' не очень подходит, достаточно взглянуть на исходный код яндекса, много ключевых слов без использования скобочек... Есть ещё соображения на этот счёт?
PM MAIL ICQ   Вверх
TrillerMan
Дата 20.12.2006, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 20.12.2006

Репутация: нет
Всего: нет



Есть вот там всё есть bsalsa.com  о результатах сообщи))если буш заниматся работой с этими компонентами тукай будем вместе разбиратся я с ними тоже разбираюсь
PM MAIL   Вверх
GrafCharodey
Дата 20.12.2006, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 14.12.2006

Репутация: нет
Всего: нет



TrillerMan, спасибо, установил... Мда разбираться там надо основательно))
У меня немного изменилось ТЗ, мне не только надо выдрать текст, но и разбить его на типы: заголовки, постой текст, ссылки и т.д. Сомневаюсь что существуют такие компоненты, по крайней мере там я ничего похожего не нашёл (или плохо смотрел)... Так что пока занимаюсь разработкой алгоритма. Проблема в том что поиск определёных тегов по всему тексту кропотливая роботёнка. Не сталкивался с чем нибудь похожим?
PM MAIL ICQ   Вверх
W4FhLF
Дата 20.12.2006, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 6
Всего: 121



Если ты приведёшь примеры исходного html текста со всеми вариантами исполнения, а потом укажешь, что тебе из этого нужно получить, то нам будет проще тебе помочь. 
Я на данный момент вижу несколько вариантов:
-Загрузить страницу в TWebBrowser и далее по кусочкам её разобрать отталкиваясь от COM интерфейсов.
-Использовать регулярные выражения для парсинга и проверки формата текста на соответствие различным условиям(тег, ссылка, заголовок, текст)


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
GrafCharodey
Дата 20.12.2006, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 14.12.2006

Репутация: нет
Всего: нет



W4FhLF, HTML текст может быть совершенно любой, то есть учитывая грамотность автора мне надо его обработать. В данный момент в качестве подопытного я использую главную страничку Яндекса. В начале пытаюсь привести код к более менее приемлемому виду а потом начинаю поиск нужных тегов. Как уже говорил нужно на выходе получить все заголовки разных уровней, обычный текст, ссылки, титлы и содержимое alt. Страничку в TWebBrowser я загружаю и после приступаю к обработке...
В принципе примерный алгоритм я уже для себя составил, но кто знает где я натолкнусь на препятствие. Использую как раз названия тегов для парсинга. Буду очень рад услышать ваши предложения.
Заранее благодарен!
PM MAIL ICQ   Вверх
MetalFan
Дата 20.12.2006, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 62
Всего: 128



А зачем в TWebBrowser?
может сразу в IHTMLDocument2 ???


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Sansa
Дата 20.12.2006, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 173
Регистрация: 18.10.2006
Где: Королев

Репутация: 3
Всего: 6



По твоему ТЗ похоже нужен простой конвертор (фильтр) HTML->Doc (RTF). Примеров - масса.
--------------------
- Здравствуйте, я Ваш патологоанатом
PM MAIL ICQ   Вверх
GrafCharodey
Дата 20.12.2006, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 14.12.2006

Репутация: нет
Всего: нет



Sansa, Спасибо, испытал... Только этот код совершенно не то выполняет. Как я посмотрел он выводит размеры шрифтов, шрифты, цвета, которые используются на страничке. Текст не выводит вобще... Но тем не менее полезная вещь, спасибо!!!


MetalFan, Он нужен для удобства работы.
PM MAIL ICQ   Вверх
W4FhLF
Дата 20.12.2006, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 6
Всего: 121



Ну вот как раз для парсинга html кода я бы и использовал регулярки, сказать что-то более конкретное я не могу, ибо нехватает исходных данных smile


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
Elfebet
Дата 20.12.2006, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 545
Регистрация: 15.5.2006
Где: Украина. Запорожь е.

Репутация: 2
Всего: 14



данный вопрос уже поднимался, вот ссылки
http://forum.vingrad.ru/index.php?showtopi...st&p=927634
http://forum.vingrad.ru/index.php?showtopi...st&p=873704


--------------------
Программист не должен всё знать... он должен знать где можно посмотреть
PM MAIL ICQ GTalk   Вверх
Golden Hands
Дата 20.12.2006, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Золотой
****


Профиль
Группа: Участник Клуба
Сообщений: 2023
Регистрация: 23.1.2005
Где: Екатеринбург

Репутация: нет
Всего: 83



Код

  var i: Integer; t: TStringList; HTMLDocument: IHTMLDocument2;

  Form1.WebBrowser1.Navigate(Form1.OpenDialog1.FileName);
  while Form1.WebBrowser1.ReadyState < 4 do
    Application.ProcessMessages;  
  HTMLDocument := Form1.WebBrowser1.Document as IHTMLDocument2;
  t.Clear;
  i:=0;
  repeat
    t.Text:=t.Text+(HTMLDocument.all.Item(i,0) as IHTMLElement).outerText;
    i:=i+1;
  until t.Text<>'';


Код

initialization
  OleInitialize(nil);  

finalization  
  OleUninitialize;  





--------------------
Мы обречены... но только на победу!
Настанет день, и мы построим новый дом.
Внесем в него тепло, что сохранить сумели,
И воскресим все то, что в нас когда-то умерло... © Тень Света
PM MAIL ICQ   Вверх
MetalFan
Дата 21.12.2006, 00:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 62
Всего: 128



ЗАЧЕМ тащить полностью TWebBrowser, если можно обойтись HTMLDocument'ом? или страничку еще отображать нужно?!


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1723 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.