6 / 6 / 0
Регистрация: 14.07.2011
Сообщений: 80
1

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

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

Author24 — интернет-сервис помощи студентам
Здравствуйте. Нужно спарсить со страницы два числа, которые стоят между тегов <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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.03.2012, 00:08
Ответы с готовыми решениями:

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

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

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

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

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

Добавлено через 3 часа 8 минут
Скажите, пожалуйста, что и где почитать по сабжу. Спасибо.
0
15 / 9 / 1
Регистрация: 23.02.2012
Сообщений: 135
01.04.2012, 12:16 4
Это в самый верх:
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 5
Здравствуйте, делаю парсинг 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
12.05.2013, 18:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.05.2013, 18:01
Помогаю со студенческими работами здесь

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

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

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

Парсинг сайта HtmlAgilityPack
Привет! Есть проблема Есть тз: распарсить сайт (например...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru