С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/19: Рейтинг темы: голосов - 19, средняя оценка - 4.84
6 / 6 / 0
Регистрация: 14.07.2011
Сообщений: 80

Парсинг с помощью HtmlAgilityPack

31.03.2012, 00:08. Показов 3585. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Нужно спарсить со страницы два числа, которые стоят между тегов <span id="first_id">*первое число*<font> и <span id="second_id">*второе число*<font> и поместить их в две переменные (без разницы, string или int). Предпочтительней будет сделать это с помощью HtmlAgilityPack, но можно и по-другому. Ниже часть кода страницы.

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<body>
....
<div class="class1">
    <div class="class2">
                        <p>You have <span id="first_id">142 <font>points</font></span></p>
        <p>She has<span id="second_id">2324 <font>points</font></span></p>
    </div>
    <div id="div_id">
        <div style="padding: 40px 0 0 55px; font-size: 12px; text-align:center;">
            <strong>Your Flash Player plugin is outdated.</strong><br />
                Click <a href="/?detectflash=false">here</a>, to download the latest Adobe Flash Player plugin.
        </div>
    </div>
</div>
...
</body>
Спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.03.2012, 00:08
Ответы с готовыми решениями:

Парсинг, HtmlAgilityPack
В общем давно хотел затронуть тему парсинга, сейчас появился повод... В общем полазил я по инету и увидел что многие советуют...

парсинг с помощью mshtml
pps ошибся и не правильно назвал тему, с помощью mshtml Всем привет такой вопрос. У меня есть html страничка, которую я получаю с...

Парсинг элементв с помощью HtmlAgilityPack
Помогите найти ошибку в коде. Сайт взял произвольный. X path с заголовка H1 &lt;h1 class=&quot;mainhead&quot;&gt;Госдума приняла закон о...

4
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
31.03.2012, 12:26
А с чем проблемы возникли?
0
6 / 6 / 0
Регистрация: 14.07.2011
Сообщений: 80
01.04.2012, 01:05  [ТС]
Цитата Сообщение от turbanoff Посмотреть сообщение
А с чем проблемы возникли?
Не знаю, как реализовать парсинг с <div class="">. С <div id=""> получилось, а вот с этого не выходит.
С HtmlAgilityPack раньше не работал.

Добавлено через 3 часа 8 минут
Скажите, пожалуйста, что и где почитать по сабжу. Спасибо.
0
15 / 9 / 1
Регистрация: 23.02.2012
Сообщений: 135
01.04.2012, 12:16
Это в самый верх:
C#
1
using System.Text.RegularExpressions;
Т.к. не знал, откуда парсить, сделал для richTextBox1, а если тебе из веббраузера надо то можешь сделать так:
C#
1
richTextBox1.Text = webBrowser1.DocumentText;
И сам парсинг:
C#
1
2
3
4
            var firstid = Regex.Match(richTextBox1.Text, @"<span\sid=""first_id"">([^>]*)<font>").Groups[1].Value;
            var secondid = Regex.Match(richTextBox1.Text, @"<span\sid=""second_id"">([^>]*)<font>").Groups[1].Value;
            MessageBox.Show(firstid);
            MessageBox.Show(secondid);
1
0 / 0 / 2
Регистрация: 30.04.2013
Сообщений: 11
12.05.2013, 18:01
Здравствуйте, делаю парсинг html страницы при помощи HTMLAgilityPack. В итоге возвращает нужную мне таблину, но в этой таблице есть две ненужные мне строки. Как их оттуда убрать? Построчно парсить, а потом складывать строчки, как нужно, не получится, потому, как в таблице есть не постоянные поля, которые тоже очень нужны.
Помогите, пожалуйста.
Код:
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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using HtmlAgilityPack;
using HtmlDocument = HtmlAgilityPack.HtmlDocument;
using System.IO;
 
namespace WinFormPars
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
 
            try
            {
                example();
            }
            catch (Exception)
            {
                throw;
            }
        }
 
        void example()
        {
            string sURL;
            sURL = "http://www.yandex.ru";
 
            HtmlDocument doc = new HtmlDocument();
            var web = new HtmlWeb
            {
                AutoDetectEncoding = false,
                OverrideEncoding = Encoding.UTF8,
            };
                HtmlNodeCollection hnNode = doc.DocumentNode.SelectNodes("//table[@class='" + "b-stocks-i b-stocks-i-currency" + "']");
                if (hnNode != null)
                {
                    foreach (var hn in hnNode)
                    {
                            string outputText = hn.OuterHtml;
                            webBrowser1.DocumentText = outputText;
                            richTextBox1.AppendText(outputText);
                    }
                }
                else
                {
                    MessageBox.Show("hnNode вернула null");
                }
            }
    }
}
У яндекса курс зачем-то записан 2-мя span-ами, из которых 1-й курс с точностью в 2 знака, и он абсолютно не нужен, а вот второй - тот же курс только с точностью в 4 знака, который, как раз и необходим мне.

Добавлено через 5 часов 53 минуты
Вроде разобрался, как. Просто с outputText нужно работать, как с обычной строкой. Придется использовать регулярные выражения.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.05.2013, 18:01
Помогаю со студенческими работами здесь

Парсинг страницы с помощью HtmlAgilityPack
Имеется такая конструкция: &lt;div id=&quot;farm_town_20721&quot; class=&quot;tile farmtown_not_owned_on_same_island ft5&quot; style=&quot;left: 47290px; top:...

Парсинг жанров музыки с помощью HtmlAgilityPack
Здравствуйте! Уважаемые пользователи CyberForum! Подскажите пожалуйста как правильно парсить? Есть сайт с выбором жанра музыки....

Парсинг с помощью HtmlAgilityPack. Как добиться вывода информации?
Доброго времени суток. Я использую библиотек HtmlAgilityPack. Произвожу парсинг www.banki.ru Мне необходимо получить информацию из...

Парсинг сайта, HtmlAgilityPack
Использую HtmlAgilityPack, чтобы считать информацию с сайта string rate =...

Парсинг сайта HtmlAgilityPack
Привет! Есть проблема Есть тз: распарсить сайт (например https://www.deezer.com/ru/playlist/2872124702) и вытянуть от туда информацию о...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru