Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
 Аватар для dmyrzakanov
1 / 1 / 2
Регистрация: 17.07.2013
Сообщений: 9

Распарсить текст HTML

17.07.2013, 10:27. Показов 1209. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
HTML5
1
2
3
<TD bgColor=#666666 width=15></TD>
<TD class=header4>Имя</TD>
<TD class=header2>Ардак</TD></TR>
как можно выбрать текст Ардак
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.07.2013, 10:27
Ответы с готовыми решениями:

Распарсить html-строку и узнать, какой текст и как был отформатирован
Вообщем имеется строка такого типа &quot;new text&lt;b&gt;text b&lt;/b&gt;&lt;i&gt;text i&lt;b&gt;text b i &lt;/b&gt;&lt;/i&gt;&quot; Нужно достать обычный текст, жирный текст и...

Распарсить HTML страницу
Здрям! На форме будут размещен элемент webBrowser и через него буду открывать страницу. Код страницы выглядит так: &lt;tr&gt; ...

Распарсить HTML-страницу
например я Напишу страницу в техбох1 а при нажатие на кнопки спарсить он должен загрузить себе весь код страницы а потом выбрать все...

4
78 / 60 / 9
Регистрация: 26.06.2013
Сообщений: 198
17.07.2013, 12:09
Можно использовать Html Agility Pack.
C#
1
2
3
4
5
6
7
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(путь);
HtmlAgilityPack.HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//тег[@атрибут=значение]");
foreach (HtmlAgilityPack.HtmlNode in nodes)
{
    // что-то делаем
}
Но я не знаю, в каком виде вы получаете содержимое - всю страницу или только эти строки. В последнем случае я бы использовал RegEx.
1
 Аватар для dmyrzakanov
1 / 1 / 2
Регистрация: 17.07.2013
Сообщений: 9
17.07.2013, 12:46  [ТС]
RegEx как использовать не могу понять.

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<TR bgColor=#666666>
          <TD bgColor=#666666 width=15></TD>
          <TD class=header4>РНН</TD>
          <TD class=header2>211120074982</TD>
          <TD bgColor=#666666 width=15></TD>
          <TD class=header4>Имя</TD>
          <TD class=header2>Ардак</TD></TR>
        <TR bgColor=#666666>
          <TD bgColor=#666666 width=15></TD>
          <TD class=header4>СИК</TD>
          <TD class=header2>3PK5AB5PS1F6B000</TD>
          <TD bgColor=#666666 width=15></TD>
          <TD class=header4>Отчество</TD>
          <TD class=header2>Айдарович</TD></TR>
        <TR bgColor=#666666>
есть htm файл из него надо извлечь имя и фамилия
0
78 / 60 / 9
Регистрация: 26.06.2013
Сообщений: 198
17.07.2013, 19:06
C Regex можно это делать примерно так:
C#
1
2
3
4
5
6
7
8
Regex regex = new Regex("^<td class=header4>Имя</td>\\s*<td class=header2>(.{1,15})</td>$", RegexOptions.IgnoreCase);
string[] str = { "<TD class=header4>Имя</TD><TD class=header2>Ардак</TD>"};
Match match = regex.Match(str[0]);
if (match.Success)
{
    Group group = match.Groups[1];
    Console.WriteLine(group.Value);
}
Но сомневаюсь, что в данном случае это оптимальный вариант.
Уверен, что данные берутся из БД. Нет возможности получить их оттуда?

Если нет, то как вы получаете страницу? Содержит она одну запись или несколько?
Данные на кириллице, как быть с кодировкой, могут ведь и кракозяблики получиться.
Может стоит использовать HtmlAgilityPack.
1
 Аватар для dmyrzakanov
1 / 1 / 2
Регистрация: 17.07.2013
Сообщений: 9
18.07.2013, 08:43  [ТС]
Получаю страницу, который содержит несколько записей. Вот решил поиск.

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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
using System;
using System.IO;
using System.Text;
using System.Threading;
using Excel = Microsoft.Office.Interop.Excel;
class search
{
    static void Main(string[] args)
    {
        Console.OutputEncoding = Encoding.GetEncoding(866);
        
        string folderName = @"C:\1CB_IN";
        string[] allFiles = Directory.GetFiles(folderName);
        
        string filename;
        
        
        foreach (string s in allFiles)
        {
            int i = 0;
            string[] a = new string[100];
            filename = Path.GetFileNameWithoutExtension(s);
            Console.WriteLine(s);
 
            StreamReader file = new StreamReader(@s, Encoding.Default);
                //File.OpenText(@s,Encoding.UTF8);
            string line;
            while ((line = file.ReadLine()) != null)
            {
               line = line.Trim();
               if (line.StartsWith("<TD class=header2>"))
               {
                   
                   int lastIndex = line.LastIndexOf("</TD>");
                   line = line.Substring(0,lastIndex).Remove(0,18);
                   Console.WriteLine(line);
                   a[i] = line;
                   i++;
               }
               //Console.WriteLine(line);
               
            }
            file.Close();
            
            
            //create excel file
            Excel.Application xlApp;
            Excel.Workbook    xlWorkBook;
            Excel.Worksheet   xlWorkSheet;
            object misValue=System.Reflection.Missing.Value;
 
            xlApp = new Excel.ApplicationClass();
            xlWorkBook = xlApp.Workbooks.Add(misValue);
 
            xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
            string var1 = a[0];   // уникальный номер финансового учреждения
            string var2 = a[1];   // фамилия в наст
            string var3 = a[2];   // рнн
            string var4 = a[3];   // имя
            string var5 = a[4];   // сик
            string var6 = a[5];   // отчество
            string var7 = a[6];   // дата рождения
            string var8 = a[7];   // фамилия по рождению
            string var9 = a[8];   // пол
            string var10 = a[9];  // место рождения(город)
            string var11 = a[10]; // образование
            string var12 = a[11]; // место рождения (область,район)
            string var13 = a[12]; // семейное положение
            string var14 = a[13]; // страна рождения (код страны)
            string var15 = a[14]; // иин 
 
            xlWorkSheet.Cells[1, 1] = "Общие сведения о заемщике (ф/л)";
 
            xlWorkSheet.Cells[2, 1] = "Имя";
            xlWorkSheet.Cells[2, 2] = var4;
 
            xlWorkSheet.Cells[3, 1] = "Фамилия в настоящее время";
            xlWorkSheet.Cells[3, 2] = var2;
 
            xlWorkSheet.Cells[4, 1] = "Фамилия по рождению";
            xlWorkSheet.Cells[4, 2] = var8;
 
            xlWorkSheet.Cells[5, 1] = "Отчество";
            xlWorkSheet.Cells[5, 2] = var6;
 
            xlWorkSheet.Cells[6, 1] = "Дата рождения";
            xlWorkSheet.Cells[6, 2] = var7;
 
            xlWorkSheet.Cells[7, 1] = "ИИН";
            xlWorkSheet.Cells[7, 2] = var15;
 
            xlWorkSheet.Cells[8, 1] = "РНН";
            xlWorkSheet.Cells[8, 2] = var3;
 
            xlWorkSheet.Cells[9, 1] = "СИК";
            xlWorkSheet.Cells[9, 2] = var5;
 
            xlWorkSheet.Cells[10, 1] = "Место рождения (город)";
            xlWorkSheet.Cells[10, 2] = var10;
 
            xlWorkSheet.Cells[11, 1] = "Место рождения (область, район)";
            xlWorkSheet.Cells[11, 2] = var12;
 
            xlWorkSheet.Cells[12, 1] = "Страна рождения (код страны)";
            xlWorkSheet.Cells[12, 2] = var14;
 
            xlWorkSheet.Cells[13, 1] = "Пол";
            xlWorkSheet.Cells[13, 2] = var9;
 
            xlWorkSheet.Cells[14, 1] = "Образование";
            xlWorkSheet.Cells[14, 2] = var11;
 
            xlWorkSheet.Cells[15, 1] = "Семейное положение";
            xlWorkSheet.Cells[15, 2] = var13;
 
 
 
 
 
            string path_to_save = @"C:\1CB_OUT\" + filename + ".xls";
            //Console.WriteLine(path_to_save);
            xlWorkBook.SaveAs(path_to_save, Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
            xlWorkBook.Close(true,misValue,misValue);
            xlApp.Quit();
            
            
 
 
        }
 
 
        Console.ReadKey();
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.07.2013, 08:43
Помогаю со студенческими работами здесь

Regular Expressions: распарсить HTML
Здравствуйте! У меня есть кусок HTML-кода. В браузере у меня примерно так выглядит: Имя: Иван Фамилия: Иванов ... и т.д В...

Распарсить html регулярными выражениями
Сломал себе всю голову. Причина в том что с регулярными выражениями до сегодня вообще не сталкивался, а тут приспичило. Есть html с тремя...

Распарсить полученую html страницу
ссылка: http://soft.softodrom.ru/ap/Traffic-Inspector-p4360 Написал метод получить ее html код: public string Get_Html(string...

Распарсить ответ в виде html
Привет всем. Есть сайт , я его спарсил вот так : public static string getPage(string pageCount) { WebRequest...

Распарсить строку HTML-кода
Всем привет. Посоветуйте как выйти из данной ситуации. Нужно вырезать ВСЁ из этого текста, &lt;div...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
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 12.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