|
Вопрос # 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. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|