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

Можно ли создать канал из сайта, не имеющего rss ленты.



Попробовал создать канал из rss ленты - получается, сделано очень удобно, гораздо проще чев трубах.


Попробовал сделать тоже самое для сайта с простой структурой, не имеющего rss ленты: http://www.contr-tv.ru/. Не получилось:

WebClient:LoadChannelFromFeed: В экземпляре объекта не задана ссылка на объект.

В трубах из такого сайта rss ленту сделать можно. А у вас?
Channel Template:
// В этом блоке мы собираем ссылки на статьи
try{
	var d = new Document(channel.url, channel.encoding);
	var els = d.getElementsByAttr('div', 'class', 'anonsTitle');

	for(var i=0; i< els.length; i++){
		var cel = els[i];
		var a = new Article();
		a.id = a.url = 'http://www.contr-tv.ru' + 
cel.getElementsByTagName('a')[0].getAttribute('href');

		channel.articles.push(a);
	}
}catch(ex){errorMessages.Add(ex)}
Article Template:
// В этом блоке собираем текст статьи и дату
try{
	// Будем использовать версию "для печати" 
	// (в "обычной версии" нет даты публикации новости)
	var d = new Document(article.url.replace('common', 'print'), 
channel.encoding);

	var el = d.getElementsByAttr("div", "style" , "padding: 0 50 0 50")[0];
	article.body = el.innerHTML;

	// Версия для печати поможет нам вытащить дату
	article.date = DateTime.Parse(d.getElementsByTagName('div')[0]
.innerText.replace('Интернет против Телеэкрана, ', ''));

}catch(ex){errorMessages.Add(ex)}
У приведенного мной выше шаблона есть недостаток - он не верно определяет дату публикации новости. Как сделать правильный шаблон подробно расписано в руководстве по разработке каналов для сайтов без RSS-лент.
Только собрался редактировать ваш предыдущий шаблон, а вы уже все сделали и написали замечательное руководство. Спасибо! На основе этого примера можно раздраконить кучу сайтов. Буду разбираться дальше.