| 
| 
 | Вопрос # 4 142/ вопрос открыт / | 
 |  Здравствуйте!Как спарсить со странички все значения которые мне нужны, допустим:
 если на страничке есть несколько (10)
 
 S:=Pars('src="',StrPage,'">');
 
 Грубо говоря на страничке 10 картинок...
 Как спарсить все 10 а не только первую?
 Спасибо за ответы!!!
 
|  |   Вопрос задал: Ximer (статус: Посетитель)Вопрос отправлен: 11 мая 2010, 22:19
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: min@y™ Вот тебе парсер, как я и обещал.Юзай на здоровье.
 К ответу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки ответа)
 
 
|  | Ответ отправил: min@y™ (статус: Доктор наук)Время отправки: 12 мая 2010, 08:47
 Оценка за ответ: 5
 Комментарий к оценке: =) Спасиб |  
 Мини-форум вопросаВсего сообщений: 4; последнее сообщение — 12 мая 2010, 09:25; участников в обсуждении: 3. 
|   | webkent (статус: 2-ой класс), 12 мая 2010, 07:33 [#1]:Pos() по тексту. Или я туплю? |  
|   | min@y™ (статус: Доктор наук), 12 мая 2010, 08:21 [#2]:Могу дать простенький HTML-парсер (исходник ~11 кб). Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Ximer (статус: Посетитель), 12 мая 2010, 09:13 [#3]:Дай пример как с ним работать |  
|   | min@y™ (статус: Доктор наук), 12 мая 2010, 09:25 [#4]: Цитата (Ximer): Дай пример как с ним работать  Ну, вот кусок кода:
 
 var
  j, i:        integer;
  obj:         TObject;
  HTMLTag:     THTMLTag;
  HTMLParam:   THTMLParam;
  OldProgress: Integer;
begin
  FCancelled:= False;
  FStream.Seek(0, 0);
  FParser.Lines.Clear;
  FImageURLs.Clear;
  FParser.Lines.LoadFromStream(FStream);
  FParser.Execute;
  FProgress:= 0;
  FImageURLs.Clear;
  OldProgress:= 0;
 
  for i:= 1 to FParser.parsed.count do
    begin
     if FCancelled
       then Exit;
 
     obj:= FParser.parsed[i - 1];
 
     if obj.classtype = THTMLTag
       then begin
              HTMLTag:=THTMLTag(obj);
              if HTMLTag.Params.count = 0
                then continue;
 
              if HTMLTag.Name = 'IMG'
                then for j:= 1 to HTMLTag.Params.count do
                       begin
                         HTMLParam:= HTMLTag.Params[j - 1];
                         if HTMLParam.key = 'SRC'
                           then if HTMLParam.value <> ''
                                  then AddImage(HTMLParam.value);
                       end
                else if HTMLTag.Name = 'TD'
                       then for j:= 1 to HTMLTag.Params.count do
                              begin
                                HTMLParam:= HTMLTag.Params[j - 1];
                                if HTMLParam.key = 'BACKGROUND'
                                  then if HTMLParam.value <> ''
                                         then AddImage(HTMLParam.value);
                              end
            end;
 
      FProgress:= Round(100 * i / FParser.parsed.count);
      if (FProgress - OldProgress > UpdateParserProgressInterval) or (FProgress = 100)
        then begin
               OldProgress:= FProgress;
               if Assigned(FonProgress)
                 then FOnProgress(self);
             end;
    end;
end;Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |