Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.65/26: Рейтинг темы: голосов - 26, средняя оценка - 4.65
89 / 60 / 2
Регистрация: 08.03.2011
Сообщений: 546

Вытаскивание слова из html странички

13.11.2011, 20:51. Показов 4906. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте,
В исходном коде странички есть строка
HTML5
1
<tr><th>Страна:</th><td>Китай</td></tr>
как вытащить значение поля страны Китай
Заранее спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.11.2011, 20:51
Ответы с готовыми решениями:

Как вытащить текст со Html странички? Html Agility Pack
Всё очень просто как вытащить текст с Html странички с помощью Html Agility Pack? К примеру у нас есть страничка того же сайта ...

Вытаскивание нужного участка кода HTML
есть код html погружаемый в memo необходимо вытащить оттуда ссылку id=&quot;link&quot; href=&quot;/barada.jpg&quot; onclick=&quot;return showPhoto ...

Создание странички в html
Послезавтра зачет, надо сделать страничку про какого-то ученого, например, Ньютон, Эйнштейн, я в html дундук помогите пожалуйста напишите...

24
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
13.11.2011, 22:42
Html парсинг, не могу решить проблему
1
774 / 554 / 80
Регистрация: 03.07.2011
Сообщений: 1,020
13.11.2011, 23:48
C#
1
2
3
4
5
6
7
 HtmlElementCollection inpts=  webBrowser2.Document.GetElementsByTagName("td");
            foreach(HtmlElement login in inpts)
            {
                MessageBox.Show(login.InnerText);
                   
              
            }
1
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
13.11.2011, 23:53
fiphiker, Regex в помощь.
1
89 / 60 / 2
Регистрация: 08.03.2011
Сообщений: 546
14.11.2011, 20:36  [ТС]
Цитата Сообщение от Vitall Посмотреть сообщение
C#
1
2
3
4
5
6
7
 HtmlElementCollection inpts=  webBrowser2.Document.GetElementsByTagName("td");
            foreach(HtmlElement login in inpts)
            {
                MessageBox.Show(login.InnerText);
                   
              
            }
Спасибо, только вытягиваются все элементы с этим тэгом, а как можно сделать чтоб именно в строке со словом Страна:
0
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
14.11.2011, 20:42
Приведите более полный HTML-код.
0
89 / 60 / 2
Регистрация: 08.03.2011
Сообщений: 546
14.11.2011, 21:05  [ТС]
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<tr class="gallery-table-first-row">
<td class="gallery-table-cell"><form name="order" action="" method="post">
<div class="gallery-item"><div><span class="image"><img class="catalog-image" id="53319" src="/catalog_images_gal/53319/142xbig/53319-0.jpg" alt="Авто 189-22 ин." title="Авто 189-22 ин." border="0" ><img src="/images/zoom.png" alt="увеличить" width="22" height="22" class="zoom" /></span>
<h3><a href="/catalog/item/?gid2=Avto_inercionnye&gid=Transportnaia_igruschka&id=8">
Авто 189-22 ин.</a></h3>
<table><tbody>
<tr><th>Артикул:</th><td>189-22L/23L</td></tr>
<tr><th>Код:</th><td>53319</td></tr>
 
<tr><th>в кор./уп.:</th><td>144
/
 72</td></tr>
<tr><th>Страна:</th><td>Китай</td></tr>
<tr><th>Опт.цена:</th><td><span class="price">71.88</span> руб.</td></tr>
 
<tr><th>Заказ:</th><td><input type="text" class="quantity" value=""> шт.</td></tr>
<tr class="incart" style="display:none;" id="incartrow8"><td colspan="2">уже заказано <b id="incart8"></b></td></tr>
</tbody></table><input type="image" id="item8" class="button button-order" src="/images/buttons/order.gif">
</div></div></form></td><td colspan="3">&nbsp;</td>
</tr></table>
</div>
Добавлено через 1 минуту
а может сделать так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 string url ="сайт";
            string s3 = string.Empty;
            HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequest.Create(url);
            HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
            StreamReader sr3 = new StreamReader(myResponse.GetResponseStream(), Encoding.GetEncoding(1251));
            s3 = sr3.ReadToEnd();
          
            var pattern3 = @"какой regex тут написать?";
            var mathes3 = Regex.Matches(s3, pattern3);
           
            foreach (Match m3 in mathes3)
            {
                listBox1.Items.Add(m3.Groups["name"]);
                ssilki4.Add(m3.Groups["name"].Value);
              //  listBox7.Items.Add(m3.Groups["value"]);
              
            }
Добавлено через 16 минут
и еще вопросс
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 private void listBox1_KeyDown(object sender, KeyEventArgs e)
        {
            string url = @"сайт=" + listBox1.Text;
            string s = string.Empty;
            HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequest.Create(url);
            HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
            StreamReader sr = new StreamReader(myResponse.GetResponseStream(), Encoding.GetEncoding(1251));
            s = sr.ReadToEnd();
            if
                (s.Contains("По данным параметрам товаров не найдено."))
           
                label2.Text = "По данным параметрам товаров не найдено.";
           
 
        }
при проверке кода пишет есть эта строка или нет, но если перехожу в listbox по значениям, label не обновляется
0
1 / 1 / 1
Регистрация: 14.11.2011
Сообщений: 17
14.11.2011, 23:13
Не занимайтесь ерундой, для парсинга есть инструмент http://ru.wikipedia.org/wiki/XPath

Как вариант, дополнительно можно установить HtmlAgilityPack

Добавлено через 1 час 14 минут
http://kronus.me/2011/04/введе... ого-парсе/
1
 Аватар для zukoz
17 / 9 / 0
Регистрация: 17.08.2011
Сообщений: 115
15.11.2011, 19:37
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Regex в помощь.
0
89 / 60 / 2
Регистрация: 08.03.2011
Сообщений: 546
15.11.2011, 19:44  [ТС]
zukoz, Через Regex плохо умею,
можешь помочь переделать?
C#
1
2
3
4
5
6
7
            var pattern = @"(рег.выражение)";
            var mathes = Regex.Matches(s, pattern);
            foreach (Match m in mathes)
            {
                               listBox2.Items.Add(m.Groups["название страны"]);
                
            }
0
87 / 73 / 6
Регистрация: 11.09.2011
Сообщений: 118
16.11.2011, 16:38
C#
1
2
3
4
5
6
7
            var pattern = @"<tr><th>Страна:</th><td>(.*?)</td></tr>";
            var mathes = Regex.Matches(s, pattern);
            foreach (Match m in mathes)
            {
                  listBox2.Items.Add(m.Groups[1].Value);
                
            }
1
 Аватар для m0nax
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
16.11.2011, 16:57
C#
1
2
3
4
5
6
7
            var pattern = @"<th>Страна\W</th>\s*<td>\s*(?<COUNTRY>.+?)\s*</td>";
            var mathes = Regex.Matches(s, pattern);
            foreach (Match m in mathes)
            {
                               listBox2.Items.Add(m.Groups["COUNTRY"].Value);
                
            }
1
89 / 60 / 2
Регистрация: 08.03.2011
Сообщений: 546
16.11.2011, 17:33  [ТС]
Niades,
m0nax, Спасибо, я уже это сделал.
0
89 / 60 / 2
Регистрация: 08.03.2011
Сообщений: 546
18.11.2011, 15:11  [ТС]
Здраствуйте, возникла еще одна проблема
есть код на html

<div id="alllistings"><div id="classified_listing"><h3>Below are the 20 latest reviews for the category Restaurants General</h3><div class="listing rev-listing vard"><div class="listhead"><h3 class="summary org fn"><a href="/company/redz-bar-&amp;-grill-A070078922.html" title="View the company information page for Redz Bar &amp; Grill">Redz Bar &amp; Grill</a></h3><div class="rating" style="clear: none;"><span class="u-r-span">User Rating: </span><img src="/resources/images/star-5.gif" alt="Star Rating" class="star-img"/></div></div><div class="listmid"><span class="tel"><strong>028 94428100</strong></span><a href="/company/redz-bar-&amp;-grill-A070078922.html" title="Contact Redz Bar &amp; Grill" class="std-but-large fr">Contact Business</a><strong class="bus_addr adr">Redzjunction One International Outlet Shopping, Antrim. BT41 4LL</strong>


При вытаскивании красных слов с помощью регулярок вытаскиваются лишние данные, подскажите как вытаскивать их, используя
title=
class="tel"
class="bus_addr adr"

Добавлено через 2 часа 4 минуты
C#
1
2
3
4
5
6
7
8
9
10
11
12
  private void button4_Click(object sender, EventArgs e)
        {
           
            HtmlElementCollection html1 = webBrowser1.Document.GetElementsByTagName("span");
            foreach (HtmlElement elem1 in html1)
            {
 
                listBox1.Items.Add(elem1.GetAttribute("class"));
 
            }
 
        }
вот так сделал для вытаскивания номеров,но появляются пустые ячейки
0
774 / 554 / 80
Регистрация: 03.07.2011
Сообщений: 1,020
18.11.2011, 15:54
Цитата Сообщение от fiphiker Посмотреть сообщение
вот так сделал для вытаскивания номеров,но появляются пустые ячейки
известная проблема с получение значений из "class"
1
89 / 60 / 2
Регистрация: 08.03.2011
Сообщений: 546
18.11.2011, 18:21  [ТС]
Vitall, можешь посоветовать что-нибудь
0
774 / 554 / 80
Регистрация: 03.07.2011
Сообщений: 1,020
18.11.2011, 18:38
Цитата Сообщение от fiphiker Посмотреть сообщение
можешь посоветовать что-нибудь
fiphiker,Ну есть идея получать внутренний html код тега в который интегрирован class ,а дальше уже производить синтаксический разбор этого кода ,для получения значений class .То есть работать с html кодом уже как со стрингом .
1
89 / 60 / 2
Регистрация: 08.03.2011
Сообщений: 546
18.11.2011, 18:55  [ТС]
а через регулярки знаешь как делать?
0
774 / 554 / 80
Регистрация: 03.07.2011
Сообщений: 1,020
18.11.2011, 19:02
Цитата Сообщение от fiphiker Посмотреть сообщение
а через регулярки знаешь как делать?
Не доводилось пока еще пользоваться
0
87 / 73 / 6
Регистрация: 11.09.2011
Сообщений: 118
18.11.2011, 19:56
C#
1
2
3
var Regex1 = new Regex("<a href=\"/company/redz-bar-&amp;-grill-A070078922.html\" title=\"View the company information page for Redz Bar &amp; Grill\">(.*?)</a>");
var Regex2 = new Regex("<span class=\"tel\"><strong>(.*?)</strong></span>");
var Regex3 = new Regex("<strong class=\"bus_addr adr\">(.*?)</strong>");
Вот такие регулярки должны нормально сработать. Дальше опять пишете
C#
1
2
3
//Страница в переменной document
string result = Regex1.Match(document).Groups[1].Value;
//В result получаете то, что вам нужно. Аналогично пишете для оставшихся двух регулярок.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.11.2011, 19:56
Помогаю со студенческими работами здесь

Логин c HTML странички на FTP
привет всем ! подскажите сабж... а точнее, есть страница,на ней ссылка на ZIP-файл находящийся на FTP сервере на который нужно...

Динамическое формирование html странички
Есть тест проверки знаний. Вопросы получаються с сервера в виде текстового файла с помощью XMLHttpRequest. Далее необходимо сформировать...

Java-Applet из HTML-странички?
Добрый день. Я прошерстил форум и несмотря на обилие подобных вопросов решение своей проблемы не нашел. Посему прошу помощи. Я никогда с...

Открытие HTML странички из Delphi
привет подскажите пожалуйста, как открыть HTML страничку из программы Delphi, допустим по нажатию кнопки. при этом открыть ее не в...

Получить данные из html странички
Здравствуйте. Интересно было вытянуть значения из html, а именно название сериала и его количество просмотров - просмотры вытянуть...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru