Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 4 142

/ вопрос открыт /

Здравствуйте!
Как спарсить со странички все значения которые мне нужны, допустим:
если на страничке есть несколько (10)

S:=Pars('src="',StrPage,'">');

Грубо говоря на страничке 10 картинок...
Как спарсить все 10 а не только первую?
Спасибо за ответы!!!

Приложение:
  1. Delphi 7


Ximer Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Ximer (статус: Посетитель)
Вопрос отправлен: 11 мая 2010, 22:19
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: min@y™

Вот тебе парсер, как я и обещал.
Юзай на здоровье.
К ответу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки ответа)

Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 12 мая 2010, 08:47
Оценка за ответ: 5

Комментарий к оценке: =) Спасиб

Мини-форум вопроса

Всего сообщений: 4; последнее сообщение — 12 мая 2010, 09:25; участников в обсуждении: 3.
webkent

webkent (статус: 2-ой класс), 12 мая 2010, 07:33 [#1]:

Pos() по тексту. Или я туплю?
min@y™

min@y™ (статус: Доктор наук), 12 мая 2010, 08:21 [#2]:

Могу дать простенький HTML-парсер (исходник ~11 кб).
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Ximer

Ximer (статус: Посетитель), 12 мая 2010, 09:13 [#3]:

Дай пример как с ним работать
min@y™

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. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:35
Выполнено за 0.03 сек.