Сегодня будем парсить курс валюты. Информацию курса Доллара США по отношению к рублю будем брать с официального сайта Центрального банка Российской Федерации. После изучения сайта, я решил, что лучше будет брать информацию с облегчённой страницы, которая предназначена для печати. Адрес:
http://www.cbr.ru/currency_base/D_print.aspx?date_req=08.03.2010
Для получения этой страницы, сначала нужно определить текущее число:
DateTime ToDay = DateTime.Now; Console.WriteLine(ToDay.Date.ToShortDateString());
После того, как сформировали адрес, нужно выполнить простейший HTTP-запрос:
HttpWebRequest myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url); HttpWebResponse myHttpWebResponse =(HttpWebResponse)myHttpWebRequest.GetResponse(); StreamReader myStreamReader = new StreamReader(myHttpWebResponse.GetResponseStream());
Экземпляр класса HttpWebResponse получает результат выполнения GET-запроса к серверу. StreamReade принимает данные из HttpWebResponse, и с этими данными нам и придётся работать. Поподробнее о HttpWebResponse и HttpWebRequest можно почитать на RSDN.ru Взаимодействие с другими сайтами через HTTP. В myStreamReader.ReadToEnd() мы получим HTML код сайта.
В нём нам нужно выдернуть строки в которых и содержится курс валюты.
Выдёргивать будем через Регулярные выражения:
string pattern = "Доллар США\r\n
«; Match match = Regex.Match(html, pattern);
В match.Groups[1].ToString() и будет наш курс.
Вот так вот всё просто. В следующей статье напишу небольшой Парсер с использованием Авторизацией, сохранении Cookies.
Скачать исходник примера Парсер USD (1.9 Кб, 1,749 скачиваний)