Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.09.2011, 23:53   #1
Pein95
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 881
По умолчанию парсинг

Код:
            HttpWebRequest request;
            request = (HttpWebRequest)HttpWebRequest.Create(textBox1.Text);
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            string cod = response.CharacterSet;

                StreamReader reader = new StreamReader(response.GetResponseStream(), System.Text.Encoding.GetEncoding(1251), false);
            
 
        
            
            string line;
            StringBuilder builder=new StringBuilder();
            
            textBox1.Text = cod;
            while ((line = reader.ReadLine()) != null)
                builder.AppendLine(line);

            response.Close();
            reader.Close();
            richTextBox1.Text = builder.ToString();
написал вот такой код, с помощю етого кода я получаю исходный код страницы. Теперь нужно отпарсить некоторые данный вот пример html кода:

Код:
<div class="text"> 
    <h3>#7270: До следующего эпизода</h3> 
<p class="date">15 сентября 2011, 12:45<p class="date">рейтинг: 738
<p class="text" id="story_7270">«Наташа», «Катюша»… Один из серверов крупного хостера зовётся «Кенни» и постоянно падает. Тут как про корабль, который как назовёшь, так он и поплывет. Но переименовывать его неинтересно, потому что падает он всегда прикольно.</p> 
<p class="storytags"><a href="/bytag/servers">серверы</a></p><p class="date"> <a href="/vote/7270" onclick="vote(7270); return false;">Эта история мне по нраву!</a> <span id="res7270" style="font-style: italic;"></span></p> 
 
 
<div class="share"> 
	<span id="ya_share_7270" class="repost"></span> 
</div> 
 
 
<script type="text/javascript" charset="utf-8"><!--
new Ya.share({	
	element: 'ya_share_7270',	
	l10n: 'ru',
	image: 'http://ithappens.ru/img/logo.gif',
	elementStyle: {
		'type': 'button',
		'border': false,
		'quickServices': ['vkontakte', 'facebook', 'twitter', 'friendfeed', 'juick', 'lj', 'odnoklassniki', 'yaru']
	},
	link: 'http://ithappens.ru/story/7270',
	title: 'До следующего эпизода',
	description: $('story_7270').innerHTML.substring(0, $('story_7270').innerHTML.indexOf('<br') - 1) + '…',	
	popupStyle: {
		blocks: {
			'Поделитесь с друзьями': ['vkontakte', 'facebook', 'twitter', 'friendfeed', 'juick', 'lj', 'odnoklassniki', 'yaru'],
		},
		copyPasteField: true
	},
	serviceSpecific: {
		twitter: {
			title: 'До следующего эпизода (ithappens.ru)'
		}
	}
});
//--></script> 
 
 
 
<ul class="np"> 
    <li class="l"><a href="/story/7269">&larr; Назад</a></li> 
    <li class="r">&nbsp;</li> 
</ul>
нужно отпарсить вот ету часть:
Код:
  <h3>#7270: До следующего эпизода</h3> 
<p class="date">15 сентября 2011, 12:45<p class="date">рейтинг: 738
<p class="text" id="story_7270">«Наташа», «Катюша»… Один из серверов крупного хостера зовётся «Кенни» и постоянно падает. Тут как про корабль, который как назовёшь, так он и поплывет. Но переименовывать его неинтересно, потому что падает он всегда прикольно.</p>
если кто может помогите, иле подскажыте какие функции использовать. Не знаю может возможно сделать ето с помощю регулярных выражений но в них я не силен( Поетому обратилса к вам. Зарание спасибо
Pein95 вне форума Ответить с цитированием
Старый 16.09.2011, 00:01   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Pein95

нужно отпарсить некоторые данный вот пример html

Html Agility Pack
Rififi вне форума Ответить с цитированием
Старый 16.09.2011, 00:41   #3
Pein95
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 881
По умолчанию

спс за ответ, вот скачал ету библиотеку присойденил к проекту. Начал гуглит нащет неё оказалось большынство документации на англ(( а я с ним пока не очень, если кому не лень напишыте небольшой пример парсинга с помощю етой библиотеки.
Написал пока вот такое, что делать дальше понятия не имею(
Код:
 HtmlAgilityPack.HtmlDocument doc=new HtmlAgilityPack.HtmlDocument();
            doc.LoadHtml(getRequest(textBox1.Text));
            HtmlAgilityPack.HtmlNodeCollection c=doc.DocumentNode.SelectNodes("//p[@class=\"text\"]");

Последний раз редактировалось Pein95; 16.09.2011 в 00:46.
Pein95 вне форума Ответить с цитированием
Старый 16.09.2011, 01:24   #4
Pein95
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 881
По умолчанию

уже сделал почти то что надо:
Код:
        private void button1_Click(object sender, EventArgs e)
        {
           // getRequest(textBox1.Text);
            
            HtmlAgilityPack.HtmlDocument doc=new HtmlAgilityPack.HtmlDocument();
            doc.LoadHtml(getRequest(textBox1.Text));
            HtmlAgilityPack.HtmlNodeCollection c=doc.DocumentNode.SelectNodes("//p[@class=\"text\"]");
            Dictionary<string,string> data= new Dictionary<string,string>();
            for (int i = 0; i < c.Count; i++)
            {
                richTextBox2.AppendText(c[i].InnerText.Trim());
                richTextBox2.AppendText("\r\n ==============================\r\n");
            }
парсит почти все что надо осталость малость. Буду благодарен за ссілки под окументации на русском язіке по етой библиотеке
Pein95 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Парсинг DeDoK Общие вопросы Delphi 8 02.02.2011 14:20
Парсинг DJ_LINZA Работа с сетью в Delphi 6 31.01.2011 10:15
Парсинг. igor90 Microsoft Office Excel 1 03.11.2010 02:41