Форумы: Флейм:

rss из сайта литгазеты



Пытаюсь сделать rss из сайта http://www.lgz.ru/last_pub. Использую как образец ваш шаблон для сайта интернет против телеэкрана.

Вот что получилось

try{
var d = new Document(channel.url, channel.encoding);
// Массив с заголовками и ссылками на новости
var links = d.getElementsByAttr('p', 'class', 'mainstyle');
// Массив с датами
//var dates = d.getElementsByAttr('div', 'class', 'newDate');
print(links.length);

for(var i=0; i< links.length; i++){
var cUrl = links[i].getElementsByTagName('a')[0].getAttribute('href');
var cTitle = links[i].getElementsByTagName('a')[0].innerText;
// Приведем дату к формату ДД.ММ.ГГГГ
//var cDate = dates[i].innerText.replace('/','.') + '.' + ateTime.Now.Year;






var a = new Article();
a.id = a.url =cUrl;
a.header = cTitle;
//a.date = DateTime.Parse(cDate);
// Помещаем новую статью в канал
// Текст новости получим чуть позже
channel.articles.push(a);

}

}catch(ex){errorMessages.Add(ex)}



Не знаю как вытащить текст статьи например отсюда http://www.lgz.ru/article/9180/:


<td style="padding-left:20px">
<p class="maintitle">События и мнения</p>
<p class="titlebigblue">Юбилей или годовщина</p>
<p class="author" style="text-align: justify;">ОЧЕВИДЕЦ</p>
<p class="author" style="text-align: justify;"><span style="text-decoration: underline;"><img style="float: right; margin: 8px; border: black 1px solid;" src="/userfiles/image/25_6229_2009/2-1.jpg" alt="" width="55" height="71">Юрий БОЛДЫРЕВ</span></p>
<p style="text-align: justify;"><span style="font-size: x-small; font-family: arial,helvetica,sans-serif;">Ещё один праздник позади – День России. В этом году он отмечался сравнительно скромно и спокойно, хотя радио и телевидение не уставали напоминать, что именно этот праздник в нашей стране – главный. Но всего через год можно ожидать совсем иного размаха торжеств: это будет двадцатилетие того события, что легло в основу праздника, – принятия Первым съездом народных депутатов РСФСР Декларации о государственном суверенитете Российской Федерации. Значит, у нас есть год на попытку осмысления того, что же это всё-таки было.<br><br>Сейчас, спустя почти два десятилетия после тех событий, принятие подобной декларации высшим органом власти России – самого сердца прежнего государства СССР – вряд ли может восприниматься иначе как невероятный абсурд, какое-то массовое умопомрачение и помешательство. Но, напомню, декларация была принята практически единодушно и воспринималась не толь
Для сбора ссылок и дат, Channel Template:
try{
	// Создаем документ
	var d = new Document(channel.url, channel.encoding);

	// Находим элемент страницы, содержащий все ссылки
	// по заголовку "Выпуск №ХХ"
	var titleEl = d.getElementsByAttr('h2', 'class', 'titlebigblue')[0];
	var mainEl = titleEl.parentNode;

	// теперь в links есть все ссылки на материалы будущей ленты
	var links = mainEl.getElementsByTagName('a');

	// Вытаскиваем дату публикации
	var dStr = titleEl.innerText;
	var date = DateTime.Parse(dStr.substring(dStr.lastIndexOf( '(' )).replace('(','').replace(')',''));

	// Создаем статьи
	for (var i=0; i < links.length; i++){	
		var a = new Article;
		a.url = links[i].getAttribute('href');
		a.id = a.header = links[i].innerText;
		a.date = date.AddSeconds(links.length - i);
		channel.articles.push(a);	
	}

}catch(ex){errorMessages.Add(ex)}

Для вытаскивания текста:
try{
	var d = new Document(article.url, channel.encoding);
	var els = d.getElementsByAttr('p', 'class', 'titlebigblue')[0].parentNode.childNodes;
	article.body = '';

	for (var i=0; i < els.length; i++){
		if (els[i].innerHTML.indexOf('Оценить') > 0)
			continue;

		article.body += els[i].outerHTML;
	}

	article.body = article.body.replace(/src="/g, 'src="http://www.lgz.ru/');
}catch(ex){errorMessages.Add(ex)} 
Огромное спасибо за шаблон. Все заработало, буду разбираться, как это все работает.

С помощью труб сделать rss из сайта lg мне в свое время не удалось.