Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.98/41: Рейтинг темы: голосов - 41, средняя оценка - 4.98
1 / 1 / 0
Регистрация: 30.10.2013
Сообщений: 27

Парсинг страницы html

31.10.2013, 07:52. Показов 7852. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Помогите отпарсить нужные данные со страницы загруженную в элемент webBrowser.
Может быть и есть где-то, но я не пойму так как вообще с этим не сталкивался. В проект нужна такая функция.

данные примерно такие

//<![CDATA[
var tabTirages = {"2013605":{"dhtir":"Mercredi 30 octobre 2013","numeros":"2239945","cplm":[],"jokerplus":"","video":false,"soustir": "1","nbgagnants":{"total":9688,"firstran g":0}},"2013604":{"dhtir":"Mardi 29 octobre 2013","numeros":"2805320","cplm":[],"jokerplus":"2 805 320","video":false,"soustir":"2","nbgagn ants":{"total":130199,"firstrang":0}},"2 013603":{"dhtir":"Mardi 29 octobre 2013","numeros":"8761757","cplm":[],"jokerplus":"2 805 320","video":false,"soustir":"1","nbgagn ants":{"total":8806,"firstrang":0}},"201 3602":{"dhtir":"Lundi 28 octobre 2013","numeros":"3544597","cplm":[],"jokerplus":"3 544 597","video":false,"soustir":"2","nbgagn ants":{"total":110687,"firstrang":0}},"2 013601":{"dhtir":"Lundi 28 octobre 2013","numeros":"4570276","cplm":[],"jokerplus":"3 544 597","video":false,"soustir":"1","nbgagn ants":{"total":8518,"firstrang":0}},"201 3600":{"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 (но лучше первый вариант) записанный в текстовый файл или в дата грид на той же форме.


понимаю что нужна регулярка, но в этом вообще ничего не смыслю


как то нужно прописать здесь

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
 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("Убедитесь, что соединение с Интернет активно и попытайтесь перезагрузить.");
            }
Может быть этот код не подойдёт...
В общем я в тупике... как говорится не знаю, да ещё и забыл

Добавлено через 23 минуты
и по всему тексту "выдернуть" аналогичные.

Добавлено через 21 минуту
Наверное я выше прописал чушь

тогда лучше так
C#
1
2
3
4
5
6
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 выдрать данные выделенные красным?

Добавлено через 35 минут
а может быть уже здесь на этапе формирования переменной ставить фильтр из регулярки?
6. html = sr.ReadToEnd();

только как? вот в чём вопрос

Добавлено через 9 часов 46 минут
Ну не верю я, не верююю... что никто не сможет составить регулярку

Добавлено через 4 минуты
а может она и не нужна?
тогда как string обработать и вытянуть все данные аналогичные выделенными красным в самом верху страницы.
Код html я получил, он записан в одну переменную, что дальше делать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
31.10.2013, 07:52
Ответы с готовыми решениями:

Парсинг HTML страницы
вот есть текст &lt;div class=&quot;w300 left&quot;&gt; &lt;span class=&quot;project_name&quot;&gt;Подписка&lt;/span&gt; &lt;/div&gt; &lt;div class=&quot;w150 left&quot;&gt; 0.12...

Парсинг html страницы
Необходимо загрузить страницу в Grid: ...

Парсинг html кода страницы
&lt;strong id=&quot;upoints&quot;&gt;0.00&lt;/strong&gt; Есть кусочек кода, из него нужно вытянуть переменную &quot;0.00&quot; в стринг, а лучше в лэйбл. Как это...

9
145 / 45 / 16
Регистрация: 10.10.2013
Сообщений: 110
31.10.2013, 08:45
могу предложить такую абракадабру ,в файле data.txt должны быть данные
C#
1
2
3
4
5
6
7
8
   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)
            {
                Console.WriteLine(sr);
            }
1
1 / 1 / 0
Регистрация: 30.10.2013
Сообщений: 27
31.10.2013, 09:28  [ТС]
спасибо, буду пробовать, может быть что и получится
0
 Аватар для lpvoid
324 / 307 / 59
Регистрация: 06.03.2013
Сообщений: 869
31.10.2013, 09:36
си-шарп, а вы не пробовали использовать что-нибудь типа HtmlAgilityPack?
1
1 / 1 / 0
Регистрация: 30.10.2013
Сообщений: 27
31.10.2013, 10:04  [ТС]
Это уже готовый парсер? Нет не пробовал. А наверное нужно? С энглиш на Вы. Что это такое если кратко.
Модуль подключаемый или готовая программа?
0
 Аватар для lpvoid
324 / 307 / 59
Регистрация: 06.03.2013
Сообщений: 869
31.10.2013, 10:10
библиотека для работы с html, поддерживает удобный парсинг, xpath и прочие плюшки. английский надо учить (или хотя б гуглотранслейтом пользоваться научиться).
пример использования htmlagilitypack
1
1 / 1 / 0
Регистрация: 30.10.2013
Сообщений: 27
31.10.2013, 10:21  [ТС]
Цитата Сообщение от lpvoid Посмотреть сообщение
библиотека для работы с html, поддерживает удобный парсинг, xpath и прочие плюшки. английский надо учить (или хотя б гуглотранслейтом пользоваться научиться).
да это конечно не трудно гуглотранслейтом пользоваться, только у меня сейчас скорость инета 40 кБит/сек
Пример не загружается что-то, форум кое как...
Учил когда-то немецкий, и тот забыл. Спрашивается зачем его вообще в школе преподавали?

Спасибо за ответ, но всё таки хочется попробовать научиться самому нужные данные парсить.
0
 Аватар для lpvoid
324 / 307 / 59
Регистрация: 06.03.2013
Сообщений: 869
31.10.2013, 10:33
парсить хтмл регулярками - садизм, имхо. к тому же вам тут надо json парсить, а не хтмл (хотя, конечто, json придется сначала из html выдрать). для парсинга html используйте htmagilitypack, для json - http://json.codeplex.com/.

Добавлено через 1 минуту
Парсинг Json строки в объект и массив
Json-парсер, есть ли готовые библиотеки
Парсинг строки json
Json-парсер, есть ли готовые библиотеки
1
1 / 1 / 0
Регистрация: 30.10.2013
Сообщений: 27
01.11.2013, 07:30  [ТС]
Цитата Сообщение от Courage Посмотреть сообщение
могу предложить такую абракадабру ,в файле data.txt должны быть данные
C#
1
2
3
4
5
6
7
8
   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)
            {
                Console.WriteLine(sr);
            }
Courage что то не фильтруется?

Добавлено через 1 час 58 минут
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 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;
            
        }
Добавил фильтр по длине и вот что напечаталось

Mercredi 30 octobre 2013","numeros":"9559745
Mercredi 30 octobre 2013","numeros":"2239945
Mardi 29 octobre 2013","numeros":"2805320
Mardi 29 octobre 2013","numeros":"8761757
Lundi 28 octobre 2013","numeros":"3544597

всё почти как и нужно, а как теперь сделать такую строку
Mercredi 30 octobre 2013 numeros 9 5 5 9 7 4 5

Добавлено через 18 часов 23 минуты
Прошёл циклом посимвольно и убрал лишнее.
Ещё один вопрос. Как из такой строки
Mercredi 30 octobre 2013 numeros 9 5 5 9 7 4 5
выбрать подстроку только последние 7 чисел, начиная отсчёт с конца строки?
0
 Аватар для nymphaea
9 / 2 / 0
Регистрация: 04.07.2013
Сообщений: 97
Записей в блоге: 2
10.07.2014, 16:41
Вот, что помогло с парсингом!!!
http://kronus.me/2011/04/%D0%B... %81%D0%B5/
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.07.2014, 16:41
Помогаю со студенческими работами здесь

Html Agility Pack парсинг страницы
Народ, есть код &lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; xml:lang=&quot;en&quot; lang=&quot;en&quot; id=&quot;vkontakte&quot;&gt;&lt;head&gt; &lt;meta...

Парсинг html страницы с выводом в Lable
Приветствую программисты Вообщем понадобилось сделать парсинг данной страницы Исходный код страницы &lt;/script&gt; &lt;meta...

Парсинг веб-страницы с использованием Html Agility Pack
Доброго времени суток! Задумал я парсить курсы валют с сайта Банка России. Считывать получается, но, судя по внешнему виду получившегося...

Парсинг делают одновременно со скачиванием html, или в конце со скачанным html
Представим что html байт за байтом записывается в файл, Как правильнее сделать парсинг , после того как будет скачан полностью весь html,...

Парсинг страницы
Доброго времени суток. Крайне необходимо парсить страницу http://www.stoloto.ru/keno/archive Результаты за 6 месяцев ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 11.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru