Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

парсинг Web [D7, WinXP]


voe ©   (2008-05-13 09:58:00) 

Есть такая вот конструкция:

<DIV id=11>
<DIV align=justify >НУЖНЫЙ МНЕ <SPAN class=h>й</SPAN>ТЕКСТ!</DIV>


Как мне получить из этого: НУЖНЫЙ МНЕ ТЕКСТ!
Все что у меня получилось это: НУЖНЫЙ МНЕй ТЕКСТ!

Как мне проигнорировать <SPAN class=h>й</SPAN> ?
Данные вытаскиваю следующим образом:

      var
 HtmlDocument: IHtmlDocument2;
 HtmlCollection: IHtmlElementCollection;
 HtmlElement: IHtmlElement;
 I: Integer;
 SourceSave1: Textfile;
begin
   AssignFile(SourceSave1,'c:\test2.txt');
 ReWrite(SourceSave1); {Create a new file named ek.txt}
 HtmlDocument := EmbeddedWB1.Document as IHtmlDocument2;
 HtmlCollection := HtmlDocument.All;
 for I := 0 to HtmlCollection.Length - 1 do begin
   HtmlElement := HtmlCollection.Item(i, 0) as IHtmlElement;
   if (HtmlElement.TagName='DIV') and (HtmlElement.ID='11') then
   Writeln(SourceSave1, HtmlElement.innertext);
   end;
Closefile(SourceSave1);


Style   (2008-05-15 11:20:00) [1]


> StringReplace или RegExp - первое, что приходит в голову


Конечно регулярные выражения что надо для таких задач.
а вот откуда в Делфе - RegExp? Я вот в 6ке не нашел.
Знаю что в DevExpress компонентах есть неплохая реализация механизма регулярных выражений.


sniknik   (2008-05-15 11:19:00) [2]

как текст нельзя, потеряешь форматирование, вот сохранить как hml с удаленными span тегами. другое дело. после открывается хоть вордом, хоть фикшенбук конвертором, будет правильно оформленный текст.

хотя, это имхо, х.з. что на самом деле автору нужно.


REA   (2008-05-15 11:07:00) [3]

А поудалять тэги span и сохранить как текст?


sniknik   (2008-05-15 08:41:00) [4]

уже высказаны 2 диаметрально противоположные идеи... 1 - скачать с другого места в готовом формате, 2 - парсить (/вырезать лишние теги) получаемый, только htm а не XML.
и в общем то да, других не предвидится... хотя нет, есть еще пара - 3 - найди готовую программу или, 4 - найми программиста.

идеи кончились, дело за реализацией.

> А почему не загрузишь в TreeView , а потом не поищешь по нему node.text ?
потому что у него не hml, а веб страничка, у которой в одном теге текст "разбавленный" лишними тегами (SPAN) со случайными буквами, которые делают его нечитаемым если копировать стандартно.

из его описания этого не понять, просто я както интересовался данным вопросом. в курсе в общем.


voe   (2008-05-14 23:56:00) [5]

Никаких идей?


voe   (2008-05-13 12:37:00) [6]


> правильно, експроприируй эксроприируемое! но гораздо проще
> скачать тот же текст с бесплатных библиотек, цельный и в
> открытом формате.


Как правильно?


> affonya   (13.05.08 11:25) [6]
> А почему не загрузишь в TreeView , а потом не поищешь по
> нему node.text ?


Объемы большие + при загрузки в TreeView наверняки и текст из <SPAN class=h>й</SPAN> тоже загрузится.


affonya   (2008-05-13 11:25:00) [7]

А почему не загрузишь в TreeView , а потом не поищешь по нему node.text ?


voe   (2008-05-13 11:01:00) [8]

А как нибуть просто прочитать только текст из тега DIV нельзя?


Anatoly Podgoretsky   (2008-05-13 10:32:00) [9]

> voe  (13.05.2008 09:58:00)  [0]

Трудновато, поскольку твои правила удаления и добавления пробелов не поддаются логике.


sniknik   (2008-05-13 10:30:00) [10]

> <SPAN class=h>й</SPAN>
книжки с литреса тыришь?
правильно, експроприируй эксроприируемое! но гораздо проще скачать тот же текст с бесплатных библиотек, цельный и в открытом формате.


palva   (2008-05-13 10:30:00) [11]

> Есть такая вот конструкция:
Если конструкция всегда правильная с точки зрения XML, то помочь могут парсеры XML.


clickmaker   (2008-05-13 10:15:00) [12]

StringReplace или RegExp - первое, что приходит в голову


Наверх

Титульная страница Поиск, карта сайта Написать письмо