» Описание: В данной статье будем получать текущую температуру и осадки в заданном нами городе. Несмотря даже на то, что сервис пока включает не так уж и много городов, он проявляет значительную скорость по обновлению данных, будем надеяться, что в будущем городов будет больше. Ну да ладно, ближе к делу.
Введение
Выбранный объект для парсинга — сайт meteoservice.ru
С сайта будем брать, как уже и говорилось ранее, температуру воздуха, в градусах цельсия, и тип осадков, если нет — облачность.
Реализация
Итак, приступим к реализации нашего темного дела, кхе-кхе.
Для начала объявим две важные сборки
using System.Net;
using System.Text.RegularExpressions;
Далее получим контент нашей странички.
WebRequest request;
request = WebRequest.Create(@"http://www.meteoservice.ru/weather/now/moskva.html");
Как видно, в качестве города указывается название города, написанное транслитом, в нижнем регистре.
Теперь надо скушать ответ, который нам послал сервер, а также передадим этот поток данных, для работы с ним напрямую.
using (var response = request.GetResponse(
{
using (var stream = response.GetResponseStream(
using (var reader = new StreamReader(stream
{
string data = reader.ReadToEnd();
А здесь, собственно, ключевая роль — парсинг данных. И тут уже есть два самых оптимальных способа.
Первый — обычная string'овая функция Split.
Вторая — регулярные выражения.
В данном случае лучше всего использовать второй вариант, т.к. первый медленнее, да и городить огород с ним не хочется.
Получаем город.
string town = new Regex(@"<h1>(?<town>.*)</h1>").Match(data).Groups["town"].Value;
Температуру.
string temp = new Regex(@"<span class=""temperature"">(?<temp>[^<]+)<span title=""Градус Цельсия"">").Match(data).Groups["temp"].Value;
Тип осадков.
string osadki = new Regex(@"<td class=""title"">Облачность:</td>[^<]*?<td>(?<osadki>[^<]+)</td>").Match(data).Groups["osadki"].Value;
Уведомляем себя любимого о текущей погоде.
Console.WriteLine(town + "\nТемпература воздуха: " + temp + "\nОсадки: " + osadki);
» Время добавления: 20 Окт 2015 в 14:31
» Посмотров: 2147
»
textarea» Рейтинг: [
+0 |
-0]
Комментарии [0]