Конференция "Основная" » парсинг Web [D7, WinXP]
 
  • voe (13.05.08 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 © (13.05.08 10:15) [1]
    StringReplace или RegExp - первое, что приходит в голову
  • sniknik © (13.05.08 10:30) [2]
    > <SPAN class=h>й</SPAN>
    книжки с литреса тыришь?
    правильно, експроприируй эксроприируемое! но гораздо проще скачать тот же текст с бесплатных библиотек, цельный и в открытом формате.
  • palva © (13.05.08 10:30) [3]
    > Есть такая вот конструкция:
    Если конструкция всегда правильная с точки зрения XML, то помочь могут парсеры XML.
  • Anatoly Podgoretsky © (13.05.08 10:32) [4]
    > voe  (13.05.2008 09:58:00)  [0]

    Трудновато, поскольку твои правила удаления и добавления пробелов не поддаются логике.
  • voe (13.05.08 11:01) [5]
    А как нибуть просто прочитать только текст из тега DIV нельзя?
  • affonya (13.05.08 11:25) [6]
    А почему не загрузишь в TreeView , а потом не поищешь по нему node.text ?
  • voe (13.05.08 12:37) [7]

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


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


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


    Объемы большие + при загрузки в TreeView наверняки и текст из <SPAN class=h>й</SPAN> тоже загрузится.
  • voe (14.05.08 23:56) [8]
    Никаких идей?
  • sniknik © (15.05.08 08:41) [9]
    уже высказаны 2 диаметрально противоположные идеи... 1 - скачать с другого места в готовом формате, 2 - парсить (/вырезать лишние теги) получаемый, только htm а не XML.
    и в общем то да, других не предвидится... хотя нет, есть еще пара - 3 - найди готовую программу или, 4 - найми программиста.

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

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

    из его описания этого не понять, просто я както интересовался данным вопросом. в курсе в общем.
 
Конференция "Основная" » парсинг Web [D7, WinXP]
Есть новые Нет новых   [134491   +8][b:0][p:0.001]