Парсинг страницы html - C#
Формулировка задачи:
Здравствуйте. Помогите Может быть этот код не подойдёт...
В общем я в тупике... теперь как с переменной
отпарсить
нужные данные со страницы загруженную в элементwebBrowser
. Может быть и есть где-то, но я не пойму так как вообще с этим не сталкивался. В проект нужна такая функция. данные примерно такие //<![CDATA[ var tabTirages = {"2013605":{"dhtir":"Mercredi 30 octobre 2013","numeros":"2239945"
,"cplm":[],"jokerplus":"","video":false,"soustir":"1","nbgagnants":{"total":9688,"firstrang":0}},"2013604":{"dhtir":"Mardi 29 octobre 2013","numeros":"2805320","cplm":[],"jokerplus":"2 805 320","video":false,"soustir":"2","nbgagnants":{"total":130199,"firstrang":0}},"2013603":{"dhtir":"Mardi 29 octobre 2013","numeros":"8761757","cplm":[],"jokerplus":"2 805 320","video":false,"soustir":"1","nbgagnants":{"total":8806,"firstrang":0}},"2013602":{"dhtir":"Lundi 28 octobre 2013","numeros":"3544597","cplm":[],"jokerplus":"3 544 597","video":false,"soustir":"2","nbgagnants":{"total":110687,"firstrang":0}},"2013601":{"dhtir":"Lundi 28 octobre 2013","numeros":"4570276","cplm":[],"jokerplus":"3 544 597","video":false,"soustir":"1","nbgagnants":{"total":8518,"firstrang":0}},"2013600":{"dhtir":"Dimanche 27 octobre 2013","numeros":"7340366","cplm":[],"jokerplus":"7 340 мне нужны в итоге с выделенного красным такие:Mercredi 30 octobre 2013 2 2 3 9 9 4 5
или даже так: 2 2 3 9 9 4 5 (но лучше первый вариант) записанный в текстовый файл или в дата грид на той же форме. понимаю что нужна регулярка, но в этом вообще ничего не смыслю как то нужно прописать здесь private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
try
{
HtmlElementCollection coll = webBrowser1.Document.GetElementsByTagName("здесь не знаю");
foreach (HtmlElement ff in coll)
{
dataGridView1.Rows.Add(); int i = 0;
foreach (HtmlElement dd in ff.All)
{
if .............???
{
dataGridView1.Rows[dataGridView1.RowCount - 2].Cells[i].Value = dd.InnerText;
i++;
}
}
}
webBrowser1.Dispose();
}
catch
{
MessageBox.Show("Убедитесь, что соединение с Интернет активно и попытайтесь перезагрузить.");
}как говорится не знаю, да ещё и забыл
и по всему тексту "выдернуть" аналогичные.
Наверное я выше прописал чушь
тогда лучше так
string url = "https://www.адрес"; string html = string.Empty; HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequest.Create(url); HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse(); StreamReader sr = new StreamReader(myResponse.GetResponseStream(),Encoding.GetEncoding(1251)); html = sr.ReadToEnd();
html
выдрать данные выделенные красным?
а может быть уже здесь на этапе формирования переменной ставить фильтр из регулярки?
6. html = sr.ReadToEnd();
только как? вот в чём вопрос
Ну не верю я, не верююю... что никто не сможет составить регулярку
а может она и не нужна?
тогда как string обработать и вытянуть все данные аналогичные выделенными красным в самом верху страницы.
Код html я получил, он записан в одну переменную, что дальше делать?
Решение задачи: «Парсинг страницы html»
textual
Листинг программы
string ss;
private void button2_Click(object sender, EventArgs e)
{
string[] strr = {"dhtir\":\"","\",\"cplm"};
string[] data = File.ReadAllText("data.txt").Split(strr, StringSplitOptions.RemoveEmptyEntries)
.Where(q => q.Contains("numeros")).ToArray();
foreach (string sr in data)
{
if ((sr.Length < 50))
{
ss += sr;
ss += "\r\n";
}
}
textBox2.Text = ss;
}