Парсинг страницы 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; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д