在c#中从Web抓取数据并加入字段

时间:2014-10-29 10:01:28

标签: c# screen-scraping

我正在尝试使用C#为学校项目制作一个简单的TVchannel指南。 我做了这个,查看了一个youtube教程:

        List<string> programasSPTV1 = new List<string>();
        List<string> horasSPTV1 = new List<string>();
        WebClient web = new WebClient();
        String html = web.DownloadString("http://www.tv.sapo.pt/programacao/detalhe/sport-tv-1");
        MatchCollection m1 = Regex.Matches(html, "<a href=\"#\" class=\"pinfo\">\\s*(.+?)\\s*</a>", RegexOptions.Singleline);
        MatchCollection m2 = Regex.Matches(html, "<p>\\s*(.+?)\\s*</p>", RegexOptions.Singleline);

            foreach(Match m in m1)
            {
                string programaSPTV1 = m.Groups[1].Value;
                programasSPTV1.Add(programaSPTV1);
            }
            foreach (Match m in m2)
            {
                string hora_programaSPTV1 = m.Groups[1].Value;
                horasSPTV1.Add(hora_programaSPTV1);
            }

            listBox1.DataSource = programasSPTV1 + horasSPTV1;

最后一行不正确...... :(

我真正需要的是将时间和程序放在同一个盒子里......

这样的东西
  17:45:Benfica-FCPorto

而不是17h45在一个盒子里而Benfica-FCPorto在另一个......:/

我该怎么做?

1 个答案:

答案 0 :(得分:0)

假设两个列表中的计数相同,则以下内容应该为您提供所需内容:

listBox1.DataSource = programasSPTV1.Zip(horasSPTV1, (a,b) => (a + " : " + b)).ToList();