Пытаетесь создать шаблон? Есть вовпросы? Задавайте их в этой ветке.
А есть ли какие-нибудь средства отладки. Как, например, посмотреть значение переменной els ?
var els = d.getElementsByAttr('div', 'class', 'anonsTitle');
Да, например:
print(els);
print(els.length);
добрый день!
очень хочу научиться программировать rss фиды, но нет базовых знаний ... ;
согласно FAQ:
"Как я могу создавать RSS-ленты?
Для начала можно ознакомиться с кратким примером. Если после этого останутся вопросы, попробуйте почитать остальную документацию или спросить совета на форуме. "по образцу краткого примера я создал свою ленту
далее читаю документацию (http://rss-farm.ru/docs.dev.objects/) - тут только список объетов и их свойств. что нужно почитать, чтобы понять как использовать их?
полагаю, что документация требует базового уровня. которого у меня нет
Спасибо за помощь
PS к примеру хочу сделать ленту, в которой в одну статью ленты будут группироваться 2 статьи канала, такое возможно?
superskin,
в одну статью ленты будут группироваться 2 статьи канала, такое возможно?
да, такое возможно, но довольно сложно. Рекомендую начать с чего-нибудь по-проще :)
Но все же, допустим у нас есть исходная лента башорга (http://bash.org.ru/rss/). Загрузим ее во временную переменную для дальнейшей работы.
// Временный канал
var c = new Channel();
// Загружаем все статьи
WebClient.LoadChannelFromFeed (c, "http://bash.org.ru/rss/");
Нужно в цикле пройтись по ленте и сгруппировать статьи основного канала.
for (var i = 0; i < c.articles.length; i+=2) {
// получаем статьи
var a1 = c.articles[i];
var a2 = c.articles[i+1];
// соединяем статьи
a1.body = a1.body + "------cut--------" +a2.body;
channel.articles.push (a1);
}
Вот собственно и все.
фантастика!
я как раз баш мечтаю сделать таким образом уже больше года!
а то задалбливает постоянно листать при чтении)
а как сделать так, чтобы
1) группировались не по 2 новости, а все с одинаковой датой
2) чтобы a1.body, "------cut--------" и a2.body разделялись переносом строки
а то идет сплошным текстом.
Спасибо!
superskin,
// Временный канал
var c = new Channel();
// Загружаем все статьи
WebClient.LoadChannelFromFeed (c, "http://bash.org.ru/rss/");
var a = c.articles[0];
var d = a.date.Date;
for (var i = 1; i < c.articles.length; i+=1) {
if (d != c.articles[i].date.Date){
channel.articles.push(a);
a = c.articles[i];
d = a.date.Date;
}else{
// соединяем статьи
a.body = a.body + "<br /><br />***<br /><br />" +c.articles[i].body;
}
}
channel.articles.push(a);
Народ, читал FAQ и сам пытался разобраться...смотрел другие примеры и термины просмотрел(хотя почти ничего не понял) и кое что я понял, но очень мало...Если кому не сложно дать мне лекбез по скайпу буду очень рад! Мой скайп saksenov2
Sigmer, лучше задавайте вопросы тут :)
Тут как бы долго...плюс мне нужно показывать человеку чего я хочу...на форуме я именно показать не смогу...
Просто очень непрозрачные инструкции как по мне... Тот пример который описан в инструкции я сделал, но ведь не все сайты такие как в примере - есть например сайт gorod.dp.ua - там вообще другие "индексы" или "метки" или как это еще назвать... и если делать по примеру в инструкции, то сделать можно, но получается Очень коряво! Куча всего лишнего! Вот мне и нужно узнать как бороться с этими "частными случаями"...
Тут вон даже уведомление об ответе не приходит и не знаешь ответил ли кто...
Ответы форума есть тут: http://rss-farm.ru/posts.rss
Напишите, какую ленты вы хотите сделать
Я ж писал, например хочу нормальную ленту gorod.dp.ua
Мне уже помогали ее делать и она у меня есть в каталоге и я уже даже сам могу сделать такую же... Но! Она ужасная! Т.к. в ней каса мусора при таком способе формирования. Нужен другой принцип формирования - не по названию "тега" и названию "класса", а как-то еще....
Ни у кого нет идей я так понимаю?
Sigmer, попробуйте так. Если все равно много лишнего - скажите.
<?xml version="1.0" encoding="utf-8"?>
<Template type="ScriptUpdater">
<Url>http://gorod.dp.ua/export/rss.php</Url>
<Title>Новости Днепропетровска и регион</Title>
<Description>Лента новостей сайта gorod.dp.ua</Description>
<Encoding>windows-1251</Encoding>
<UserAgent></UserAgent>
<ChannelTemplate><![CDATA[]]></ChannelTemplate>
<ArticleTemplate><![CDATA[var d = new Document(article.url, channel.encoding);
article.body = d.getElementsByAttr('div','class','newsbody')[0].innerHTML;
article.body = article.body.replace(/src="\/pic/g, 'src="http://gorod.dp.ua/pic');]]></ArticleTemplate>
<IsRSSBased>True</IsRSSBased>
</Template>
Да! Сейчас лента супер! Но что мне по каждому сайту Вас просить ленту делать? Я думаю Вам надоест!:)
Пытался разобраться что же такое Вы сделали, чтоб лента сайта gorod.dp.ua была нормальной, но особо сильно не продвинулся я в самообразовании...
Я понял Вы не создавали(как в примере) объект el, видимо потому что из-за особенностей разметки сайта нельзя получить одним куском желаемое и Вы сразу перешли к "третьему действию", т.е. указывали ЧТО ИМЕННО будет текстом статьи.
Это практически все что я понял...
Понял еще что, т.к. по одной переменной нормально статью вытянуть нельзя было Вы использовали несколько переменных(может быть две, а может больше - этого я не понял), т.к. строки отвечающих за это(это те которые начинаются с "article.body") было две....
Интересно этих строк-команд может быть бесконечное число или нет... Или всего в сумме этих строк-команд может быть только три или это просто совпадение что их три и в примере и тут....
Я могу только предположить, что в первой строке "article.body" Вы указали по "классу" всю ветку что нас интересует, а во второй строке "article.body" Вы как бы "запретили" весь ненужный мусор....
Я кстати изменил utf-8 на windows-1251, а то "кракозябры" были...
Просто постите сюда ваши запросы на создания каналов. Обчно находятся люди, готовые сделать канал.
Добрый вечер!)
Скажите, я так понимаю, что нельзя сделать ленту новостей от гугла, т.к. у них нет постоянного адреса, я правильно понимаю? Спасибо!
Sigmer, да - сделлать ленту новостей гугла непросто, но не потому что нет постоянной ссылки (вот например: http://news.google.com/news?pz=1&cf=all&ned=ru_ru&hl=ru&topic=h&num=3&output=rss). Ссылки в краткой версии ведут на множество разных сайтов, для каждого нужно описать алгоритм. В этом проблема.
Добрый вечер!
можно сделать rss на сайт авито (http://www.avito.ru/catalog), чтобы быть в курсе новых объявлений по той или иной теме?
Или на авто.ру ...
спасибо!