Привет! Давно не писал :)
Как известно на главной странице pr-cy.ru есть даты обновлений тИЦ, pr и яндекс выдачи. Я, как и многие, часто захожу туда, дабы проверить, не обновилось ли что-нибудь.
Сегодня напишем небольшую программу-пример, показывающую, как получить эти даты.1) Сперва заходим на сайт, видим:

Даты апдейтов тИЦ, pagerank и выдачиТри даты. Чтож, ТЗ есть.

Теперь смотрим исходный код фрагмента:

<p><span class="blue">G</span><span class="red">o</span><span class="yellow">o</span><span class="blue">g</span><span class="red">le</span> <span class="lar">PR</span><span class="date"><acronym title="11 д. назад">03.04.2010</acronym></span></p>

<p><span class="red">Я</span><b>ндекс</b> <span class="ar">тИЦ</span><span class="date"><acronym title="6 д. назад">08.04.2010</acronym></span></p>
<p class="p-last"><span class="ar">выдача</span><span class="date"><b>13.04.2010</b></span></p>

Достаточно примечательный фрагмент.

Итак, создадим новую программу, поставим кнопку и надпись (Button1 и Label1).
Для получения страницы мы будем использовать библиотеку Synapse, поэтому подключим модуль httpsend.

В процедуре-обработчике нажания на кнопку пропишем:

procedure TForm1.Button1Click(Sender: TObject);
var
  vres: TStringList;
begin
  vres:=TStringList.Create;
  if HttpGetText('http://pr-cy.ru', vres) then begin
    // мы успешно получили код страницы pr-cy, дальше будем писать сюда
  end else begin
    ShowMessage('error getting pr-cy!');
  end;
  vres.Free;
end;

Теперь введём переменные scy, spr, syv: string; и константу cpr = ‘<span class=»lar»>PR</span>’; — по ней мы будем ориентироваться.

Строки с датами найдём так:

    i:=0;
    Repeat
      if Pos(cpr, vres.Strings[i])<>0 then break;
      i:=i+1;
    until 1=0;
    spr:=vres.Strings[i];
    scy:=vres.Strings[i+1];
    syv:=vres.Strings[i+2];

Выделим в каждой строке span с помощью функций delete, pos и posex (strutils):

    i:=Pos('<span class="date">', spr);
    Delete(spr, 1, PosEx('">', spr, i+1)+1);
    i:=Pos('<span class="date">', scy);
    Delete(scy, 1, PosEx('">', scy, i+1)+1);
    i:=Pos('<span class="date">', syv);
    Delete(syv, 1, PosEx('">', syv, i+1)+1);

Ещё немного попарсим:

    i:=Pos('<span class="date">', spr);
    Delete(spr, 1, PosEx('">', spr, i+1)+1);
    i:=Pos('<span class="date">', scy);
    Delete(scy, 1, PosEx('">', scy, i+1)+1);
    i:=Pos('<span class="date">', syv);
    Delete(syv, 1, PosEx('">', syv, i+1)+1);
    repeat
      i:=Pos('<', spr);
      if i=0 then break;
      Delete(spr, i, PosEx('>', spr, i));
    until 1=0;
    repeat
      i:=Pos('<', scy);
      if i=0 then break;
      Delete(scy, i, PosEx('>', scy, i));
    until 1=0;
    repeat
      i:=Pos('<', syv);
      if i=0 then break;
      Delete(syv, i, PosEx('>', syv, i));
    until 1=0;
    spr:=StringReplace(spr, '>', '', [rfReplaceAll]);
    scy:=StringReplace(scy, '>', '', [rfReplaceAll]);
    syv:=StringReplace(syv, '>', '', [rfReplaceAll]);
    spr:=StringReplace(spr, ' ', '', [rfReplaceAll]);
    scy:=StringReplace(scy, ' ', '', [rfReplaceAll]);
    syv:=StringReplace(syv, ' ', '', [rfReplaceAll]);

И можно вывести результат:

    Label1.Caption:='pr: '+spr+#13#10+'тИЦ: '+scy+#13#10+'Выдача: '+syv;

Вот и вся арифметика. Скачать проект с парсингом дат можно по этой ссылке.
Также советую готовую программу от Борисова Сергея — Search Monitor, спасибо, что обратили на неё внимание :)

Давно я не появлялся :) Меня просто очень сильно мотивировали написать пост обои для рабочего стола. Они бесплатные :D