Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
2 / 2 / 0
Регистрация: 02.06.2012
Сообщений: 34

Реализация готового кода классами и объектами

03.08.2012, 14:26. Показов 1076. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть программа парсер страничек определенного сайта
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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Net;
using System.Threading;
using HtmlAgilityPack;
namespace FormParserWorked_Version
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
       // перебирает странички по ссылкам
        IEnumerable<string> GetUrls(string url = "http://www.057.ua/dosug/446") 
        {
            HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
            doc.LoadHtml(LoadWebPage(url));// загружаем страницу из параметра url
            foreach (HtmlNode link in doc.GetElementbyId("paginationControl").ChildNodes)
            if (link.Name == "a")
                yield return link.GetAttributeValue("href", string.Empty);
        }
        
       
        // скачивает странички
        static string LoadWebPage(string url)// метод загрузки всех страниц
        {
            WebRequest reqGET = System.Net.WebRequest.Create(url);
            System.Net.WebResponse resp = reqGET.GetResponse();
            Stream stream = resp.GetResponseStream();
            StreamReader sr = new StreamReader(stream, Encoding.GetEncoding(65001));
            string s = sr.ReadToEnd();
            return s;
        }
        // Парсит нужную инфу
        void ParseLink(string url)
        {
            string s = LoadWebPage(url);
            HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
            doc.LoadHtml(s);
            HtmlNodeCollection Reyt = doc.DocumentNode.SelectNodes(@".//*[@id='all_body']//p[@class='small_3']/strong");
            HtmlNodeCollection Names = doc.DocumentNode.SelectNodes(@".//*[@id='all_body']//td[@valign='top']/h2/a");
            HtmlNodeCollection streetsandphone = doc.DocumentNode.SelectNodes(@".//*[@id='all_body']//td[@valign='top']/strong");
            List<string> itogReyt = new List<string>();
            List<string> itognames = new List<string>();
            List<string> itogphones = new List<string>();
            if (Reyt != null)
            {
                //int j = 0;
                foreach (HtmlNode a in Reyt)
                {
                    itogReyt.Add(a.InnerText);
                }
                foreach (HtmlNode c in Names)
                {
                    itognames.Add(c.InnerText);
                }
                foreach (HtmlNode d in streetsandphone)
                {
                    itogphones.Add(d.InnerText);
                }
            }
            for (int y = 0; y < itognames.Count; y++)
            {
                richTextBox1.Text += itogReyt[y] + " " + itognames[y] + " " + itogphones[y] + "                                                                                                      ";
            }
            progressBar1.Minimum = 1;
            progressBar1.Maximum = 10;
            progressBar1.PerformStep();
            TextWriter TW = File.CreateText(@"bla/bla/1.csv");
            TW.WriteLine(richTextBox1.Text);
            TW.Close();
        }
       //  реализация в кнопке
        private void button1_Click(object sender, EventArgs e)
        {
            
            foreach (string link in GetUrls("http://www.057.ua"))
            {
                ParseLink(string.Concat("http://www.057.ua/dosug/446", link));
            }
           
        }
        private void Form1_Load(object sender, EventArgs e)
        {
        }
    }
}
прошу помочь реализовать код для консольного приложения в виде отдельных классов -
Класс - Парсинг.Класс для подключения и обработки страничек.Класс сохранения данных.
и еще нужно что бы при запуске программы в консольке показывало что сейчас происходит- допустим сейчас идёт парсинг 8 страницы или подключение к странице ну и тдд .
Заранее благодарен.
Вложения
Тип файла: rar FormParser_WorkVerssssss.rar (199.8 Кб, 7 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.08.2012, 14:26
Ответы с готовыми решениями:

Работа с классами и объектами
Я полный чайник, изучаю тему классов, и не могу понять, почему не работает данный код Он, компилируется, но при выполнении события...

Работа с классами и объектами
Необходимо вывести на экран перечень стран, у которых: 1) площадь больше или равна введенному пользователем с клавиатуры значению; 2)...

Работа с классами о объектами
Создайте следующую программу. Напишите код, описывающий класс Animal: 1. Добавьте атрибут имени животного. 2. Добавьте метод...

1
 Аватар для Faba
90 / 88 / 17
Регистрация: 30.10.2009
Сообщений: 562
09.08.2012, 11:53
а что конкретно не получается? или просто сделать всё за Вас?)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.08.2012, 11:53
Помогаю со студенческими работами здесь

Отношения между классами и объектами
Для каждого индивидуального варианта необходимо создать консольную программу на С++, реализующую отношение ассоциации (агрегации или...

Не могу разобраться с классами и объектами
Доброго всем и прочего. Вот решил изменить 1С и перешел на шарп. Собственно пытаюсь перелить проект, работающий на 1С 8.2 в...

Задача на тему робота с классами и объектами в С++
Класс Coins (монеты). Класс сохраняет массив из 3 монет та общее количество лицевых сторон после последнего подбрасывания . Должны быть...

Отношения между классами и объектами(вывод по значению)
Пишу прогу, основное уже работает. Нет мыслей только о реализации метода поиска по переменной (функция search в коде(строка 132),поиск по...

Написать программу для библиотеки с классами и объектами
Реализовать работу библиотеки (книга, автор, читатель, прокат). Напишите программу в стиле ООП, удовлетворяющую следующим условиям: в...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера 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. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru