0
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Парсер
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private string weather()
        {
            System.Net.WebClient wc = new System.Net.WebClient();
            string padge = wc.DownloadString("https://www.meteoprog.ua/ua/review/Kyiv/");
            string text = System.Text.RegularExpressions.Regex.Match(padge, @"<span class=""temperature_value""></span>").Groups[1].Value;
            return text;

        }

        private void Form1_Load(object sender, EventArgs e)
        {
            textBox1.Text = "Температура в Києві " + weather();
        }



        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }



    }
}

Считывает код сайта после чего ищет строку которую я задал.Видел такой парсер в видео.В чём проблема?

  • 1
    Возможный дубликат вопроса: Как распарсить HTML в .NET? – EvgeniyZ Jan 06 '19 at 11:55
  • А какая у вас собственно проблема? Вы её пока не описали в вопросе и ваш вопрос нужно закрыть. Приведённый код не является минимальным. Если вы получаете данные с сайта - то выкивайте весь код получения с сайта и оставляйте только регекс и приложите нам образец входной строки, которая якобы "не ищется". Если не получаются данные с сайта - то прикладывайте только код парсера. А пока вам помочь очень сложно, суть вопроса не ясна. – A K Jan 06 '19 at 12:12
  • вы ищете пустой span и хотите как то из него что то получить? – tym32167 Jan 06 '19 at 14:42

1 Answers1

0

У Вас ошибка в регулярном выражении и из-за этого в коллекции групп нет группы 1. Для создания группы в регулярном выражении используются круглые скобки.

System.Net.WebClient wc = new System.Net.WebClient();
string padge = wc.DownloadString("https://www.meteoprog.ua/ua/review/Kyiv/");
string text = System.Text.RegularExpressions.Regex.Match(padge, @"<span class=""temperature_value"">(.*?)</span>").Groups[1].Value;