Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Простой парсер, не могу получить href из html (DOM


Автор: strongmaster 8.8.2015, 17:19
Всем привет. Помогите написать простенький парсер, не могу получить href в финале.
Выдергивает все что Li, потом внутри в h3, а потом в A.

Код

        vTags := WebBrowser1.OleObject.Document.getElementsByTagName('Li');
        n1:=vTags.Length;

        if n1>0 then
        begin

          for i1:=0 to n1-1 do
          begin
          vTags1 := vTags.item(i1).getElementsByTagName('H3');
          n2:=vTags1.Length;

            if n2>0 then
            begin

              for i2:=0 to n2-1 do
              begin
              sMemo2.Lines.Add(vTags1.item(i2).InnerHTML);
              end;

            end;

          end;

        end;


В sMemo2 получается:
Код

<A href="http://www.google.ru/url?url=http://www.elle.ru/tests/&amp;rct=j&amp;frm=1&amp;q=&amp;esrc=s&amp;sa=U&amp;ved=0CBMQFjAAahUKEwj4n4380ZnHAhWI2SwKHdhEB2A&amp;usg=AFQjCNFKGc7G2o3Ta0OKGyFYhC8EjSKUHg" target=_blank><B>?????</B> ??????: ?????? ??????????????? <B>?????</B> ?????????, ??? <B>...</B></A>
                

Как получить href? Чето не пойму. Спасибо. 

Автор: Poseidon 10.8.2015, 14:12
Разбор html лучше делать с помощью регулярных выражений. Проштудируй интернет по запросу "Regular Expression" и "TRegExp"

Автор: Illusion Dolphin 11.8.2015, 20:52
Цитата

Разбор html лучше делать с помощью регулярных выражений.

Разбор html правильнее делать с помощью https://www.google.com/search?q=delphi+html+parser&ie=utf-8&oe=utf-8.

Автор: CynicRus 11.8.2015, 21:57
Вместо InnerHTML - OuterHTML подставь, так должно быть то что тебе нужно.

Автор: Poseidon 12.8.2015, 12:52
Illusion Dolphin, чем правильнее? Чем лучше регулярок? Не удивлюсь, если эти парсеры сами на регулярках работают.

Автор: CynicRus 12.8.2015, 13:21
Господа, как бы...если подключить mshtml и использоваться WebBrowser1.OleObject.Document as IHTMLDocument2 - получится тот же парсер. Вот только штука от MS значительно удобнее в использовании,
чем куча наколеночных поделий разной степени готовности. Хотя попадаются и адекватные экземляры, хотя и редко. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)