Было нужно сделать простенькое приложение которое выводит загруженность дорог по шкале Яндекса.
Нашел два места откуда можно спарсить необходимое значение.
собственно 1.yandex.ru и 2.acars.ru/probki
как выглядит код этих страниц:
участки кода содержащие информацию о пробках
1.
HTML5 |
1
| href="http://afisha.yandex.ru/msk/events/494331/"onmousedown="cp('v11.afisha.links.4',this)">Титаник 3D</a> <span class="b-afisha__genre">премьера</span><li><a href="http://afisha.yandex.ru/msk/events/490341/"onmousedown="cp('v11.afisha.links.5',this)">Милый друг</a> <span class="b-afisha__genre">драма</span></ul></div></div></div><div class=r><div class="b-probki b-probki_yw l-block"><span class="b-probki__title b-top-title b-top-title_yw b-top-title_big "><a class="b-probki__link"href="http://maps.yandex.ru/moscow_traffic"onmousedown="cp('v11.traffic.title',this)">Пробки<i class="b-probki__icon"></i></a>4 балла<span class="b-probki__arr"title="растут">↑</span></span><div class="b-probki__info"><a href="http://maps.yandex.ru/moscow_traffic"class="main"onmousedown="cp('v11.traffic.more',this)">Местами затруднения</a><br><a target=""href="http://www.yandex.ru/?open-form=_traffic"onmousedown="cp('v11.traffic.personal',this)">Пробки на моём маршруте</a><br></div></div><div class="hslice" id="stocks" style="display:none;"><span class="entry-title">Котировки</span><a rel="feedurl" |
|
2.
HTML5 |
1
2
3
4
5
6
7
8
9
10
11
| <table class="common jamTop">
<tr>
<td class="jamTop1"><a style="text-decoration:none;" href="http://acars.ru/probki/"><span style="text-decoration:underline;">Пробки</span></a></td>
<td class="jamTop2">
<img src="http://img.acars.ru/img/home3/ico-svet.gif" alt="" />
<img src="http://img.acars.ru/img/home3/svet-shad.gif" alt="" />
</td>
<td class="jamTop3" style="color:#B51303;"><span>4</span> балла</td>
</tr>
</table> |
|
Получилось что-то такое:
C# |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
| using System;
using System.Windows.Forms;
using System.Net;
using System.Text.RegularExpressions;
namespace lab1._2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private string TextPrint(string result, string pattern)
{
Match match = Regex.Match(result, pattern);
string mess = "error";
if (match.Success)
{
string Traffic = match.Groups[1].ToString();
Traffic = Convert.ToString(Traffic);
return Traffic;
}
else
return mess;
}
private void ClientDownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
DateTime ToDay = DateTime.Now;
string data = ToDay.TimeOfDay.ToString();
label2.Text = "актуально на " + data;
string result = e.Result;
string Patt = "<td class=\"jamTop3\".style=\"color:#B51303;\"><span>(.*)</span>.балла</td>";
string mark = TextPrint(result,Patt);
label1.Text = mark;
}
private void button1_Click(object sender, EventArgs e)
{
string uri = "http://acars.ru/probki";
//string uri = "http://yandex.ru";
string data = string.Empty;
var client = new WebClient();
client.DownloadStringCompleted += ClientDownloadStringCompleted;
client.DownloadStringAsync(new Uri(uri, UriKind.Absolute));
}
}
} |
|
Но в итоге ничего не выводится. А если более точно Regex.Match не Success, как следует из проверки.
Собственно, помогите составить корректное регулярное выражение для нормального парсинга пробок.

Буду благодарен
Добавлено через 2 часа 34 минуты
подобрал выражение, но теперь все парсится в неправильно кодировке