Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Net;
- using System.IO;
- using System.Text; /** Encoding */
- using System.Text.RegularExpressions; /** Regexp */
- using System.Collections.Generic; /** List */
- namespace WindowsServiceHostForMyService {
- class SiteParser {
- /**
- * Парсим погоду с сайта gismeteo.ru
- * @param url - ссылка на сайт с погодой, например https://www.gismeteo.ru/weather-moscow-4368
- * @retrun строка, содержащая 8 значений, разделенных |
- * Каждое значение - температура в определенное время [0:00, 3:00, ..., 21:00]
- * Например +10|+11|...|+12|+10
- */
- static public string getWeather(string url) {
- HttpWebRequest request = (HttpWebRequest) WebRequest.Create(url);
- request.UserAgent = "Mozilla/5.0 (Linux; Android 6.0;";
- HttpWebResponse response = (HttpWebResponse) request.GetResponse();
- List<string> weathers = new List<string>(8);
- if (response.StatusCode == HttpStatusCode.OK) {
- Stream receiveStream = response.GetResponseStream();
- StreamReader readStream = null;
- if (response.CharacterSet == null) {
- readStream = new StreamReader(receiveStream);
- } else {
- readStream = new StreamReader(receiveStream, Encoding.GetEncoding(response.CharacterSet));
- }
- string html = readStream.ReadToEnd();
- string pattern = "<span class=\"unit unit_temperature_c\">([+-]{1}\\d+)<\\/span><span";
- Match match = Regex.Match(html, pattern);
- while (match.Success) {
- weathers.Add(match.Groups[1].Value);
- match = match.NextMatch();
- }
- response.Close();
- readStream.Close();
- return String.Join("|", weathers);
- }
- return ""; // В случае ошибки
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement