Пытаюсь сделать 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 мне в свое время не удалось.