Парсер HTML

SeaMan75

New member
Регистрация
24.05.2010
Сообщения
10
Реакции
1
Баллы
3
Каким способом лучше всего очень быстро парсить HTML? - использовать готовые решения и какие или самому изобретать велосипед?
 

LenockaSeconka

Well-known member
Команда форума
Moderator
Premium
Регистрация
11.06.2007
Сообщения
319
Реакции
451
Баллы
63
Местоположение
Минск
Native language | Родной язык
Русский
Каким способом лучше всего очень быстро парсить HTML? - использовать готовые решения и какие или самому изобретать велосипед?

Скрытое содержимое доступно для зарегистрированных пользователей!


Есть готовые парсеры, можешь свой писать
 

LenockaSeconka

Well-known member
Команда форума
Moderator
Premium
Регистрация
11.06.2007
Сообщения
319
Реакции
451
Баллы
63
Местоположение
Минск
Native language | Родной язык
Русский
Я тут решил тебе за флуд предупрждение дать



Чтоб не забывал чем пользовался 4 года назад
 

xmailer

New member
Регистрация
07.11.2015
Сообщения
4
Реакции
0
Баллы
1
, работает четко. Был найден очень давно в нете.

Код:
uses HTMLPars;

var
  HTMLTag     : THTMLTag;
  HTMLParser  : THTMLParser;
  obj         : TObject;
  aTag, avalue: String;
  i           : Integer;
begin
  HTMLParser:=THTMLParser.Create;
  HTMLParser.Lines.Text:=tmp;
  HTMLParser.Execute;
  //
  for i:= 1 to HTMLParser.parsed.count do
   begin
     obj:=HTMLParser.parsed[i-1];

     if obj.classtype=THTMLText then
       avalue:=avalue+THTMLText(obj).Line;

     if (obj.classtype=THTMLTag)and(not ftovar) then
      begin
        HTMLTag:=THTMLTag(obj);
        aTag   :=LowerCase(HTMLTag.Name);

        if (aTag='tr') then
         begin
           ...
           Continue;
        end;
		
        if (aTag='/tr') then
         begin
		   // что то делаем с собранным текстом avalue
		   ...
		   avalue:='';
           Continue;
        end;
      end;
   end;
end;
 

fets

New member
Регистрация
04.10.2011
Сообщения
7
Реакции
1
Баллы
3
так же для парсинга можно использовать стандартный компонент TWebBrwoser, но я рекомендую юзать TChromium и у него намного больше внутренних инструментов, для парсинга HTML + встроенные отладчик страниц + скорость работы. Так же можно использовать его не визуальный компонент для этих целей.
 
Последнее редактирование модератором:

lomaka66

New member
Регистрация
05.01.2009
Сообщения
7
Реакции
1
Баллы
3
DiHTMLParse - мегашустрый
 

DelGor

New member
Регистрация
25.07.2011
Сообщения
21
Реакции
3
Баллы
3
TRegExpr и т.п - Регулярки уже не модные что ли..
Да и вообще, задача не понятна.. всё от задачи зависит, что парсить, может можно обойтись Copy\Pos..
 

under44

New member
Регистрация
29.06.2011
Сообщения
3
Реакции
0
Баллы
1
TRegExpr и т.п - Регулярки уже не модные что ли..
Да и вообще, задача не понятна.. всё от задачи зависит, что парсить, может можно обойтись Copy\Pos..

TRegExpr очень медленный, особенно для больших объемов. У меня даже вылетало исключение - нехватка памяти или переполнение стека, не помню уже. Я очень разочаровался в нем, просмотрев в режиме отладки его работу... К тому же в matches содержится ошибка при использовании с начальным индексом, по крайней мере в XE8 Upd1.
Лучший вариант - LowerCase, Copy, Pos. Со сложными выражениями, конечно, придется мучиться...
 

Zhrnya

New member
Регистрация
06.05.2010
Сообщения
7
Реакции
0
Баллы
1
Я почти всё делаю с Clever Internet Suite. когда он бессилен то TWebBrowser
 

test-593

New member
Регистрация
03.12.2014
Сообщения
4
Реакции
0
Баллы
1
DiHTML работает нормально, плюс, у них есть версия для разбора XML
 

NikolasK

New member
Регистрация
21.03.2017
Сообщения
11
Реакции
0
Баллы
1
Ребята вы не находили TChromium под версию XE8
 
198 101Темы
635 072Сообщения
3 618 396Пользователи
TwixOnFire69Новый пользователь
Верх