Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.06.08;
Скачать: CL | DM;

Вниз

парсинг Web   Найти похожие ветки 

 
voe   (2008-05-13 09:58) [0]

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

<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);


 
clickmaker ©   (2008-05-13 10:15) [1]

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


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

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


 
palva ©   (2008-05-13 10:30) [3]

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


 
Anatoly Podgoretsky ©   (2008-05-13 10:32) [4]

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

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


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

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


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

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


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


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


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


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


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


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

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


 
sniknik ©   (2008-05-15 08:41) [9]

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

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

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

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


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

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


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

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

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


 
Style ©   (2008-05-15 11:20) [12]


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


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



Страницы: 1 вся ветка

Текущий архив: 2008.06.08;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.02 c
15-1209382158
Ega23
2008-04-28 15:29
2008.06.08
Криптостойкость AES - что взломать проще?


2-1210697081
Alexey
2008-05-13 20:44
2008.06.08
Кодировка таблицы


2-1210768544
Patrick
2008-05-14 16:35
2008.06.08
Проверка директория


2-1209999304
TStas
2008-05-05 18:55
2008.06.08
Что такое class of ?


15-1209129042
Ega23
2008-04-25 17:10
2008.06.08
А может так спонтанно на Чистые пруды?