Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Классы и обьекты, Реализация кода классами и обьектами 
:(
    Опции темы
ForzaMetall
Дата 3.8.2012, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 29.7.2012

Репутация: нет
Всего: нет



Есть программа парсер страничек определенного сайта
Код

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 страницы или подключение к странице ну и тдд .
Заранее благодарен.


Это сообщение отредактировал(а) ForzaMetall - 3.8.2012, 13:22

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  FormParser_WorkVerssssss.rar 199,84 Kb
PM MAIL   Вверх
ForzaMetall
Дата 6.8.2012, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 29.7.2012

Репутация: нет
Всего: нет



тема закрыта
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0851 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.