Парсинг строки из html - C#
Формулировка задачи:
Необходимо со странички http://www.bestchange.ru/wmr-to-wmz.html спарсить первую строку в таблице: WMCasher 28.2127 WMR 1 WMZ 4 015 1828
написал функцию... ошибок не выдает, но и ничего не выводит. В чем я ошибся? помогите, пожалуйста. Может быть в регулярном выражении напутал...
void webmoney()
{
// Адрес сайта с курсом валюты
string url2 = "http://www.bestchange.ru/wmr-to-wmz.html";
// HTML сайта с курсом валюты
string html2 = string.Empty;
// Регулярное выражение
string pattern2 = "WMCasher</a></td><td class=\"bi\">(.*)<small>(.*)</small></td>\r\n<td class=\"bi\">(.*)<small>(.*)</small></td>\r\n<td class=\"ar\">(.*)</td><td class=\"ar\">(.*)</td>";
// Отправляем GET запрос и получаем в ответ HTML-код сайта с курсом валюты
HttpWebRequest myHttpWebRequest2 = (HttpWebRequest)HttpWebRequest.Create(url2);
HttpWebResponse myHttpWebResponse2 = (HttpWebResponse)myHttpWebRequest2.GetResponse();
StreamReader myStreamReader2 = new StreamReader(myHttpWebResponse2.GetResponseStream());
html2 = myStreamReader2.ReadToEnd();
// Вытаскиваем из HTML-кода нужные данные
Match match2 = Regex.Match(html2, pattern2);
label1.Text = match2.Groups[6].ToString();
}Решение задачи: «Парсинг строки из html»
textual
Листинг программы
void webmoney()
{
// Адрес сайта с курсом валюты
string url2 = "http://www.bestchange.ru/wmr-to-wmz.html";
// HTML сайта с курсом валюты
string html2 = string.Empty;
// Регулярное выражение
string[] pattern2 = {"WMCasher</a></td><td class=\"bi\">(.*)<small>WMR</small></td>\n<td class=\"bi\">(.*)<small>WMZ</small></td>\n<td class=\"ar\">(.*)</td><td class=\"ar\">(.*)</td>\n<td class",
"ChangeMoney</a></td><td class=\"bi\">(.*)<small>WMR</small></td>\n<td class=\"bi\">(.*)<small>WMZ</small></td>\n<td class=\"ar\">(.*)</td><td class=\"ar\">(.*)</td>\n<td class",
"Exchanger39</a></td><td class=\"bi\">(.*)<small>WMR</small></td>\n<td class=\"bi\">(.*)<small>WMZ</small></td>\n<td class=\"ar\">(.*)</td><td class=\"ar\">(.*)</td>\n<td class",
"WMtoCash</a></td><td class=\"bi\">(.*)<small>WMR</small></td>\n<td class=\"bi\">(.*)<small>WMZ</small></td>\n<td class=\"ar\">(.*)</td><td class=\"ar\">(.*)</td>\n<td class",
"DemonChange</a></td><td class=\"bi\">(.*)<small>WMR</small></td>\n<td class=\"bi\">(.*)<small>WMZ</small></td>\n<td class=\"ar\">(.*)</td><td class=\"ar\">(.*)</td>\n<td class",
"MegaExchange</a></td><td class=\"bi\">(.*)<small>WMR</small></td>\n<td class=\"bi\">(.*)<small>WMZ</small></td>\n<td class=\"ar\">(.*)</td><td class=\"ar\">(.*)</td>\n<td class",
"SairosXchange</a></td><td class=\"bi\">(.*)<small>WMR</small></td>\n<td class=\"bi\">(.*)<small>WMZ</small></td>\n<td class=\"ar\">(.*)</td><td class=\"ar\">(.*)</td>\n<td class",
"IntExchange</a></td><td class=\"bi\">(.*)<small>WMR</small></td>\n<td class=\"bi\">(.*)<small>WMZ</small></td>\n<td class=\"ar\">(.*)</td><td class=\"ar\">(.*)</td>\n<td class",
"EasyChange</a></td><td class=\"bi\">(.*)<small>WMR</small></td>\n<td class=\"bi\">(.*)<small>WMZ</small></td>\n<td class=\"ar\">(.*)</td><td class=\"ar\">(.*)</td>\n<td class",
"SuperChange</a></td><td class=\"bi\">(.*)<small>WMR</small></td>\n<td class=\"bi\">(.*)<small>WMZ</small></td>\n<td class=\"ar\">(.*)</td><td class=\"ar\">(.*)</td>\n<td class",
"Changer</a></td><td class=\"bi\">(.*)<small>WMR</small></td>\n<td class=\"bi\">(.*)<small>WMZ</small></td>\n<td class=\"ar\">(.*)</td><td class=\"ar\">(.*)</td>\n<td class",
"Cashing</a></td><td class=\"bi\">(.*)<small>WMR</small></td>\n<td class=\"bi\">(.*)<small>WMZ</small></td>\n<td class=\"ar\">(.*)</td><td class=\"ar\">(.*)</td>\n<td class",
"Currex</a></td><td class=\"bi\">(.*)<small>WMR</small></td>\n<td class=\"bi\">(.*)<small>WMZ</small></td>\n<td class=\"ar\">(.*)</td><td class=\"ar\">(.*)</td>\n<td class",
"Меняла</a></td><td class=\"bi\">(.*)<small>WMR</small></td>\n<td class=\"bi\">(.*)<small>WMZ</small></td>\n<td class=\"ar\">(.*)</td><td class=\"ar\">(.*)</td>\n<td class",
"Обменов</a></td><td class=\"bi\">(.*)<small>WMR</small></td>\n<td class=\"bi\">(.*)<small>WMZ</small></td>\n<td class=\"ar\">(.*)</td><td class=\"ar\">(.*)</td>\n<td class",
"Ewm24</a></td><td class=\"bi\">(.*)<small>WMR</small></td>\n<td class=\"bi\">(.*)<small>WMZ</small></td>\n<td class=\"ar\">(.*)</td><td class=\"ar\">(.*)</td>\n<td class",
"NetExchange</a></td><td class=\"bi\">(.*)<small>WMR</small></td>\n<td class=\"bi\">(.*)<small>WMZ</small></td>\n<td class=\"ar\">(.*)</td><td class=\"ar\">(.*)</td>\n<td class",
"N-Change</a></td><td class=\"bi\">(.*)<small>WMR</small></td>\n<td class=\"bi\">(.*)<small>WMZ</small></td>\n<td class=\"ar\">(.*)</td><td class=\"ar\">(.*)</td>\n<td class",
"WebObmen</a></td><td class=\"bi\">(.*)<small>WMR</small></td>\n<td class=\"bi\">(.*)<small>WMZ</small></td>\n<td class=\"ar\">(.*)</td><td class=\"ar\">(.*)</td>\n<td class",
"Обменник.ру</a></td><td class=\"bi\">(.*)<small>WMR</small></td>\n<td class=\"bi\">(.*)<small>WMZ</small></td>\n<td class=\"ar\">(.*)</td><td class=\"ar\">(.*)</td>\n<td class",
"Обменник.ws</a></td><td class=\"bi\">(.*)<small>WMR</small></td>\n<td class=\"bi\">(.*)<small>WMZ</small></td>\n<td class=\"ar\">(.*)</td><td class=\"ar\">(.*)</td>\n<td class",
"Клад.ее</a></td><td class=\"bi\">(.*)<small>WMR</small></td>\n<td class=\"bi\">(.*)<small>WMZ</small></td>\n<td class=\"ar\">(.*)</td><td class=\"ar\">(.*)</td>\n<td class" };
string[] obmen = { "WMCasher", "ChangeMoney", "Exchanger39", "WMtoCash", "DemonChange", "MegaExchange", "SairosXchange", "IntExchange", "EasyChange", "SuperChange", "Changer", "Cashing", "Currex", "Меняла", "Обменов", "Ewm24", "NetExchange", "N-Change", "WebObmen", "Обменник.ру", "Обменник.ws", "Клад.ее" };
string[] otdacha = new string[22];
string[] poluchka = new string[22];
string[] reserv = new string[22];
string[] bl = new string[22];
// string pattern2 = "WMCasher</a></td><td class=\"bi\">(.*)<small>(.*)</small></td>\r\n<td class=\"bi\">(.*)<small>(.*)</small></td>\r\n<td class=\"ar\">(.*)</td><td class=\"ar\">(.*)</td>";
// Отправляем GET запрос и получаем в ответ HTML-код сайта с курсом валюты
HttpWebRequest myHttpWebRequest2 = (HttpWebRequest)HttpWebRequest.Create(url2);
HttpWebResponse myHttpWebResponse2 = (HttpWebResponse)myHttpWebRequest2.GetResponse();
StreamReader myStreamReader2 = new StreamReader(myHttpWebResponse2.GetResponseStream());
html2 = myStreamReader2.ReadToEnd();
// Вытаскиваем из HTML-кода нужные данные
// Match match2 = Regex.Match(html2, pattern2);
dataGridView3.RowCount = 1;
for (int i = 0; i < 22; i++)
{
Match match2 = Regex.Match(html2, pattern2[i]);
otdacha[i] = match2.Groups[1].ToString();
poluchka[i] = match2.Groups[2].ToString();
reserv[i] = match2.Groups[3].ToString();
bl[i] = match2.Groups[4].ToString();
this.dataGridView3.Rows.Add(new object[] { obmen[i], otdacha[i] + " WMR", poluchka[i] + " WMZ", reserv[i], bl[i] });
}
}