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

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Нужно спарсить со страницы два числа, которые стоят между тегов <span id="first_id">*первое число*<font> и <span id="second_id">*второе число*<font> и поместить их в две переменные (без разницы, string или int). Предпочтительней будет сделать это с помощью HtmlAgilityPack, но можно и по-другому. Ниже часть кода страницы.
Листинг программы
  1. <body>
  2. ....
  3. <div class="class1">
  4. <div class="class2">
  5. <p>You have <span id="first_id">142 <font>points</font></span></p>
  6. <p>She has<span id="second_id">2324 <font>points</font></span></p>
  7. </div>
  8. <div id="div_id">
  9. <div style="padding: 40px 0 0 55px; font-size: 12px; text-align:center;">
  10. <strong>Your Flash Player plugin is outdated.</strong><br />
  11. Click <a href="/?detectflash=false">here</a>, to download the latest Adobe Flash Player plugin.
  12. </div>
  13. </div>
  14. </div>
  15. ...
  16. </body>
Спасибо.

Решение задачи: «Парсинг с помощью HtmlAgilityPack»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using HtmlAgilityPack;
  11. using HtmlDocument = HtmlAgilityPack.HtmlDocument;
  12. using System.IO;
  13.  
  14. namespace WinFormPars
  15. {
  16.     public partial class Form1 : Form
  17.     {
  18.         public Form1()
  19.         {
  20.             InitializeComponent();
  21.  
  22.             try
  23.             {
  24.                 example();
  25.             }
  26.             catch (Exception)
  27.             {
  28.                 throw;
  29.             }
  30.         }
  31.  
  32.         void example()
  33.         {
  34.             string sURL;
  35.             sURL = "http://www.yandex.ru";
  36.  
  37.             HtmlDocument doc = new HtmlDocument();
  38.             var web = new HtmlWeb
  39.             {
  40.                 AutoDetectEncoding = false,
  41.                 OverrideEncoding = Encoding.UTF8,
  42.             };
  43.                 HtmlNodeCollection hnNode = doc.DocumentNode.SelectNodes("//table[@class='" + "b-stocks-i b-stocks-i-currency" + "']");
  44.                 if (hnNode != null)
  45.                 {
  46.                     foreach (var hn in hnNode)
  47.                     {
  48.                             string outputText = hn.OuterHtml;
  49.                             webBrowser1.DocumentText = outputText;
  50.                             richTextBox1.AppendText(outputText);
  51.                     }
  52.                 }
  53.                 else
  54.                 {
  55.                     MessageBox.Show("hnNode вернула null");
  56.                 }
  57.             }
  58.     }
  59. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.071 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы