Парсинг информации (курса валют) с сайта (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’ах курсы валют.
У меня получилось следующее:
У вас должно получиться так же, если все сделали как написано в данном уроке.
К уроку прилагаются исходники:
На этом урок закончен. Всем спасибо за внимание.
Оставить комментарий авторизованы, что бы оставить комментарий.
Вы должны быть