Рейтинг@Mail.ru
Парсинг информации (курса валют) с сайта (Delphi 7) | Программирование на Delphi и C#
Заметка

Парсинг информации (курса валют) с сайта (Delphi 7)

В данном уроке вы узнаете как программно получить информацию в веб-ресурса.
Сегодня мы будет парсить курс валют с сайта yandex.ru.
Для этого нам нужно открыть Delphi (я использую версию Delphi 7), далее создать проект (File — New — Application).
На форму визуального редактора накидаем следующие компоненты: 2 Label, 2 Edit, 1 Button. Расположить вы их можете как хотите.

После этого у вас должно получиться примерно следующее:
После добавления компонентов
Для написания кода программы нам необходимо просмотреть html код страниц для USD и для EUR (мы будем парсить 2 страницы).
USD: http://news.yandex.ru/quotes/1.html
EUR: http://news.yandex.ru/quotes/23.html
Открываем сайт и нажимаем правой клавишей мыши на пустом месте, выбираем пункт «Просмотр кода страницы». Нажимает Ctrl+А (поиск) и ищем часть текста:

<span class="b-quote__sgn"></span>31,59</td>

и такой же кусок кода с Евро.
Мы будем парсить самое первое значение (оно и будет всегда считаться самым актуальным).
Так же нам понадобится функция для парсинга:

function Pars(T_, ForS, _T: string): string;
var
  a,b:integer;
begin
  Result:='';
  if (T_='') or (ForS='') or (_T='') then
    Exit;<br />  a:=Pos(T_, ForS);
  if a = 0 then
    Exit
  else
    a:=a + Length(T_);
  ForS:=Copy(ForS, a, Length(ForS) - a + 1);
  b:=Pos(_T, ForS);
  if b > 0 then
    Result:=Copy(ForS, 1, b - 1);
end;

Её нужно вставить перед кодом вашей кнопки, т.е. перед строчкой:

procedure TForm1.Button1Click(Sender: TObject);

Далее нужно кинуть компонент IdHTTP из вкладки Indy Clients на нашу форму.
Приступим непосредственно к написанию кода программы, который будет собирать необходимую информацию (курс валют).
Для этого нажмите 2 раза на кнопке, у вас откроется редактор кода.
Нам нужно добавить переменную строку, для этого перед словом begin добавляем следующее:

var
  data : string;

Начинаем подключение к сайту, после слова begin добавляем следующее:

data:=IdHTTP1.Get('http://news.yandex.ru/quotes/1.html');

Этой строчкой мы получим исходный код интересующей нас страницы с USD, который сохранится в строке data.
Далее попробуем спарсить значения Доллара в наши Edit1, который мы ранее добавили на форму.
Для этого пишем:

Edit1.Text := Pars('', data, '< /td>');

Эта строка означает что мы будет в строке data (весь код страницы) парсить значение, стоящее после:

<span class="b-quote__sgn"></span>

Там и будет находиться курс USD.
Тоже самое нам проделать и для Евро. Для этого вставляем:

data:=IdHTTP1.Get('http://news.yandex.ru/quotes/23.html');
Edit2.Text:=Pars('', data, '< /td>');

Что означает, что уже в имеющуюся у нас строку мы загрузим код новой страницы и так же его распарсим.
После этого, естественно, надо опробовать что у нас получилось. Нажимаем «F9» для запуска нашего проекта.
После того как программа запустилась, нажимаем кнопку и должны увидеть в 2-х Edit’ах курсы валют.

У меня получилось следующее:
Результат
У вас должно получиться так же, если все сделали как написано в данном уроке.

К уроку прилагаются исходники:

Скачать Парсер курса валют

Тип файла: rar, Размер файла: 286.16 kB, Скачан: 769 раз(а)

На этом урок закончен. Всем спасибо за внимание.

Оставить комментарий   Вы должны быть авторизованы, что бы оставить комментарий.