Все главные новости России и Международных новостных каналов в одном месте. На данном ресурсе собраны лучшие новостные площадки. Здесь вы найдете новости любого, интересующего вас содержания: Лучшие новостные площадки, Новости спорта, Автоновости, Общественные новости, Новости туризма.
RSS-канал новостей сейчас присутствует практически на каждом сайте.
Что такое RSS канал
RSS канал — это лента новостей сайта, блога. Т.е это выстроенные в определенном порядке, обычно последняя новость наверху, небольшие анонсы статей. Обычно этот блок содержит 3-5 анонсов.
Чтобы увидеть более расширенную ленту новостей нужно перейти по ссылке RSS, часто обозначают таким значком .
Новостная лента, на которую ведет такая ссылка служит именно для подписки на нее. Просмотр содержимого возможен в специальной программе, браузере, или сервисе.
Зачем нужно RSS
Для чего же нужен RSS канал? Ответ прост — лента новостей нужна для подписки на нее, и просмотра ее у себя в специальной программе, браузере, или сервисе.
Допустим Вам интересны несколько блогов. Вы их постоянно читаете. И Вам приходится каждый раз для просмотра этих блогов, дабы не пропустить, что-нибудь интересное, заходить на каждый отдельно. Получится намного эффективнее, в данном случае, подписаться на все интересующие вас блоги, посредством RSS ссылки, и просматривать анонсы всех своих блогов в специальной программе, браузере, или удобном сервисе. А просматривать заинтересовавшие статьи, переходя по ссылке анонса.
Подведем итог: При помощи подписок посредством RSS-ссылок, на интересующих Вас сайтах, Вы формируете уникальную для себя ленту новостей всех ресурсов в интернете, которые Вы периодически читаете.
news-rss.ru
Яндекс.Новости – новостной агрегатор. Как добавить сайт, правила добавления
Яндекс.Новости — автоматическая служба обработки новостей, новостной агрегатор, доступен по адресу news.yandex.ru.
Свои версии Яндекс.Новости имеет в разных странах:
— Украина http://news.yandex.ua
— Беларусь http://news.yandex.by
— Казахстан http://news.yandex.kz
Все важные новости доступны на главной странице Яндекс Новостей, далее ориентируясь на ваши предпочтения, вы можете углубляться в тематику и читать по ней новости. Информация предоставляется в полном объёме в текстовом, графическом и видео форматах. Что бы пользователь получил по-настоящему объективную и полную информацию все поступившие материалы автоматически группируются в сюжеты без вмешательства человека.
Служба работает круглосуточно, проверяет и собирает новости со всего мира ежеминутно, создаёт для вас актуальную картину дня. Информацию для Яндекс.Новостей предоставляют ведущие Российские и Мировые СМИ, для этого с ними заключены специальные договорённости.
Условия добавления сайта в Яндекс Новости
- Новостные материалы на сайте должны публиковаться минимум 1-3 месяца. Если на сайте нет новостных материалов, вас точно не возьмут.
- Материалы на сайте должны быть в свободном доступе, должны всегда быть доступны без регистрации на сайте.
- С примерами сайтов партнёров можно ознакомиться здесь http://news.yandex.ru/smi/.
- Все сайты планирующие работать с новостным сервисом должны ознакомиться и принять «Условия использования сервиса Яндекс.Новости», ссылка на условия.
- Должен быть настроен файл экспорта RSS, у Яндекса.Новостей свои требования к этому файлу, они описаны здесь getDoc.pdf, требования соответствуют стандарту RSS 2.0
- Каждый материал должен быть размещён на уникальном URL адресе.
- Тематика материалов может быть любой, но соответствовать законам Российской Федерации.
- Содержание сайтов должно быть связано с новостями. Пример информации, которая не должны быть на сайте: анекдоты, прогнозы погоды, литературные произведения и тп.
- Содержание должно быть оригинальным. Если вы публикуете дубликат новости на вашем сайте, то он попадёт в Яндекс Новости со статусом «дубликат» и не будет участвовать в поиске. Оригинальные материалы определяются по времени публикации и содержанию.
- Требований к периодичности обновлений на вашем сайте нет. Рекомендуемые требования материалы на сайте должны обновляться один раз в три дня и чаще.
- Проверить есть ли ваш сайт в Яндекс Новостях можно по ссылке http://news.yandex.ru/smi/lenta, подставив в неё ваш URL (без точки и доменной зоны) это пример что сайт lenta.ru есть в Яндекс.новостях.
Как добавить сайт в Яндекс.Новости
Присылайте заявку адрес вашего сайта и информацию по нему на почту info@news.yandex.ru в ней должны быть указаны: описание сайта, адрес сайта, периодичность публикаций, тематика. Заявка будет рассмотрена и в ответ будут высланы инструкции по дальнейшим действиям.
Из уникальных плюсов для сайта после добавления в Яндекс.Новости можно выделить следующие: мгновенная индексация страниц, дополнительный трафик (в некоторых случаях до 30%).
Записи по теме:
Теги: Яндекс
Смотри также:
steptosleep.ru
Русскоязычные каналы
Каталог русских RSS-каналов http://www.kanban.ru
Новости Yandex в формате RSS http://news.yandex.ru/export.html
NEWSru.com — http://www.newsru.com/plain/rss/all.xml
Газета.ru — Все новости (RSS) ( http://www.gazeta.ru/export/gazeta_rss.xml )
Lenty.RU — [ссылка появится после проверки модератором]
Подробности — (http://www.podrobnosti.com.ua/export/)
Lenta.ru — (http://lenta.ru/l/r/EX/import.rss)
Полит.РУ — (http://www.polit.ru/rss/index.xml)
Портал «Юридическая Россия» ( http://law.edu.ru/rss/news.rss )
Водка он-лайн — http://vodka.com.ua/export/rss.xml
Портал «ПлейМобайл» — http://playmobile.ru/news/rss
3Dnews — http://www.3dnews.ru/expnews/rss/newsrss.xml
Список RSS-фидов русскоязычного сегмента Интернет:
http://my.yandex.ru/rss.opml
Интересные новостные фиды:
Аргументы и Факты — http://www.aif.ru/info/rss.php?magazine=aif
АвтоОБЗОР — [ссылка появится после проверки модератором]
АвиаПорт.Ру — [ссылка появится после проверки модератором]
Деловая Хроника — http://www.chronicle.ru/l/r/EX/rsschannel.xml
K2Kapital — http://ad.k2kapital.com/cbp/mynetscape/mynews.news
Linux.org.ru — http://images.linux.org.ru/getrss.php3
PalmQ Online — http://www.palmq.net/backend.php
СПОРТ сегодня — http://www.sports.ru/sports_docs.xml
TRAVEL.RU.
е о путешествиях — http://www.travel.ru/inc/side/yandex.rdf
АПК-Информ — http://www.apk-inform.com/yandextr.php
ФОНТАНКА.РУ — http://www.fontanka.ru/_transmission_for_yandex.thtml
IMA Press. Тема дня — http://www.ima-press.ru/rss.php?newsblock=themelimit=1
Журнал «Итоги» — http://www.itogi.ru/WebExport.nsf/Anons/itogi.xml
Остров. Новости Донбасса — [ссылка появится после проверки модератором]
ПОЛИТ.РУ — http://www.polit.ru/rss/index.xml?yandex_mode=1
PRAVDA.Ru — http://export.pravda.ru/yandex.txt
PR NEWS (все пресс-релизы компаний) — http://www.prnews.ru/yandex/business.asp
Энциклопедия поисковых систем — http://www.searchengines.ru/news/news.rdf
Сетевой журнал — [ссылка появится после проверки модератором]
otvet.mail.ru
Мы решили подключить наш сайт к Яндекс.новостям. Яндексу нужна RSS особого вида, та, что livestreet отдаёт из коробки ему не подходит.
За основу был взят ActionRSS, который есть в ливстрите с самого начала. Вообще-то я в php ни в зуб ногой, на работе пишу на c++, и ливстрит увидел в первый раз в жизни, так что работа эта заняла у меня не меньше 4 часов. В том числе потому что документацию к движку я тогда найти не смог.
Вот такие задачи следовало решить:
- добавить пространство имён yandex в RSS
- сменить описание (<description>) канала на что-то более информативное, чем «Новости по-ростовски / RSS Channel»
- добавить логотип сайта размером «не более 100 пикселей по максимальной стороне».
- добавить в каждую новость элемент <yandex:full-text>, содержащий текст новости без единого HTML-тега.
- заменить элементы <category>, описывающие набор тегов, на один элемент <category>, описывающий рубрику (в нашем случае — блог публикации)
- выпилить все ненужные Яндексу элементы из RSS
- сделать систему фильтрации новостей для Яндекса. У нас сайт гражданской журналистики, который помимо новостей содержит анонсы всяких культурных штук, крики души пользователей, непроверенные сообщения — в общем, всякие штуки, за которые на Яндекс-новостях могут забанить
А такие задачи решить было желательно, но не обязательно:
- добавить картинки и прочие media-элементы из новости в виде элементов <enclosure>
- добавить ссылки по теме новости в виде элемента <yandex:related>
- добавить элемент <author> с именем-фамилией автора сообщения
Проблему фильтрации договорились решить следующим образом — в RSS попадают только посты с главной, помеченные определенным тегом. Чтобы он не мозолил глаз огромным шрифтом в облаке тегов, я отключил его показ в облаке. Это, конечно, костыль, и рано или поздно я эту радость заменю чем-нибудь поприличнее — например, отдельным булевым полем в базе и галочкой «Пустить на Яндекс» у администратора. Или хотя бы выделю в плагин.
Очень не хотелось писать парсер, который бы вылавливал медиа-элементы из новости и добавлял их в RSS как элементы <enclosure>. Тем более, что вообще-то не всякую картинку из статьи стоит добавлять к новости. Зато у нас шаблон simple, который позволяет к каждому посту добавить картинку-preview. Вот её мы и решили запихивать в RSS. На всякий случай я сделал эту функциональность отключаемой.
RSS-лента будет располагаться по адресу /yandex_rss. Полученная в результате RSS-лента была подключена к Яндексу без малейших нареканий.
А вот получившийся код.
/classes/actions/YandexRss.class.php
<?php /*------------------------------------------------------- * * LiveStreet Engine Social Networking * Copyright © 2008 Mzhelskiy Maxim * *-------------------------------------------------------- * * Official site: www.livestreet.ru * Contact e-mail: rus.engine@gmail.com * * GNU General Public License, version 2: * http://www.gnu.
Rss() { header('Content-Type: application/rss+xml; charset=utf-8'); } protected function RegisterEvent() { $this->AddEvent('index','RssYandex'); } protected function RssYandex() { $aResult=$this->Topic_GetTopicsGood(1,Config::Get('module.topic.per_page')*2,false); $aTopics=$aResult['collection']; $aChannel['title']=Config::Get('view.name'); $aChannel['link']=Config::Get('path.root.web'); $aChannel['description']=htmlspecialchars(Config::Get('yandex_rss.description')); $aChannel['language']='ru'; $aChannel['managingEditor']=Config::Get('general.rss_editor_mail'); $aChannel['generator']=Config::Get('view.name'); $aChannel['image']=Config::Get('yandex_rss.image'); $bPrintPreview=Config::Get('yandex_rss.print_preview'); $sAllowTag=Config::Get('yandex_rss.allow_tag'); $topics=array(); foreach ($aTopics as $oTopic){ if (in_array($sAllowTag, $oTopic->getTagsArray())) { $item['title']=$oTopic.
} } $this->InitRss(); $this->Viewer_Assign('aChannel',$aChannel); $this->Viewer_Assign('aItems',$topics); $this->SetTemplateAction('index'); } /** * выдирает адрес preview в зависимости от типа топика * если preview нет, возвращает '' * */ protected function getPreviewUrl($oTopic) { if ($oTopic->getType()=='photoset') { $oMainPhoto=$oTopic->getPhotosetMainPhoto(); return $oMainPhoto->getWebPath('220crop'); } else if ($oTopic->getPreviewImage()) { return $oTopic->getPreviewImageWebPath('220crop'); } else { return ''; } } /** * Формирует текст топика для индексации RSS роботом яндекса * */ protected function getYandexFullTopicText($oTopic) { $sText=$oTopic->getText(); return htmlspecialchars(strip_tags($sText)); } } ?>
/templates/skin/ваш темплейт/actions/ActionYandexRss/index.tpl
<?xml version="1.0" encoding="UTF-8"?> <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:yandex="http://news.yandex.ru" xmlns:media="http://search.yahoo.com/mrss/"> <channel> <title>{$aChannel.title}</title> <link>{$aChannel.link}</link> <description>{$aChannel.description}</description> <image> <url>{$aChannel.image}</url> <title>{$aChannel.title}</title> <link>{$aChannel.link}</link> </image> {foreach from=$aItems item=oItem} <item> <title>{$oItem.title|escape:'html'}</title> <link>{$oItem.link}</link> <pubDate>{date_format date=$oItem.pubDate format="r"}</pubDate> <category>{$oItem.category}</category> <yandex:full-text>{$oItem.yandexFullText}</yandex:full-text> {if $oItem.preview} <enclosure url="{$oItem.preview}"/> {/if} </item> {/foreach} </channel> </rss>
эти строчки нужно добавить в /config/config.local.php
/** * Настройка rss для Яндекса */ $config['router']['page']['yandex_rss'] = 'ActionYandexRss'; $config['yandex_rss']['description'] ='Очень клёвый новостной сайт'; $config['yandex_rss']['image']='http://путь.к/yandex-logo.png'; $config['yandex_rss']['print_preview']=true; //печатать preview или нет $config['yandex_rss']['allow_tag']='foobar'; //тег, по которому отбираются топики с главной страницы, регистр важен.
а это костыль в /classes/blocks/BlockTags.class.php
<?php /*------------------------------------------------------- * * LiveStreet Engine Social Networking * Copyright © 2008 Mzhelskiy Maxim * *-------------------------------------------------------- * * Official site: www.livestreet.ru * Contact e-mail: rus.engine@gmail.com * * GNU General Public License, version 2: * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html * --------------------------------------------------------- */ /** * Обрабатывает блок облака тегов * */ class BlockTags extends Block { public function Exec() { /** * Получаем список тегов */ $aTags=$this->oEngine->Topic_GetOpenTopicTags(70); /* фильруем тег для яндекс-новостей */ function FilterYandexTag($oTag) { $sAllowTag=Config::Get('yandex_rss.allow_tag'); return $oTag->getText() != $sAllowTag; } $aTags=array_filter($aTags, "FilterYandexTag"); /** * Расчитываем логарифмическое облако тегов */ if ($aTags) { $iMinSize=1; // минимальный размер шрифта $iMaxSize=10; // максимальный размер шрифта $iSizeRange=$iMaxSize-$iMinSize; $iMin=10000; $iMax=0; foreach ($aTags as $oTag) { if ($iMax<$oTag->getCount()) { $iMax=$oTag->getCount(); } if ($iMin>$oTag->getCount()) { $iMin=$oTag->getCount(); } } $iMinCount=log($iMin+1); $iMaxCount=log($iMax+1); $iCountRange=$iMaxCount-$iMinCount; if ($iCountRange==0) { $iCountRange=1; } foreach ($aTags as $oTag) { $iTagSize=$iMinSize+(log($oTag->getCount()+1)-$iMinCount)*($iSizeRange/$iCountRange); $oTag->setSize(round($iTagSize)); // результирующий размер шрифта для тега } /** * Устанавливаем шаблон вывода */ $this->Viewer_Assign("aTags",$aTags); } } } ?>
livestreet.ru
Я, как и миллионы сограждан, узнаю новости из топ-5 ленты Яндекс-Новостей на главной поисковика. Одним прекрасным днем я задумался о том, как именно работает их алгоритм.
Подумав, что не все так страшно, решил попробовать сделать свой собственный агрегатор. Но я, признаюсь, довольно меркантильный и не стал бы тратить свое время просто ради развлечения. Отлично! Осталось придумать как можно на этом заработать: если научится предсказывать горячие темы и создать собственный новостной портал, то можно довольно быстро набрать трафик с поисковых запросов.
Цель максимум:
Научиться предсказывать темы новостей из топ-5 яндекс-ленты.
Цель минимум:
Научится просто грамотно выделять темы новостей.
Основные шаги такие:
- Сбор ссылок на все СМИ, которые участвуют в Яндекс-новостях
- Сбор ссылок на RSS-ленты этих ресурсов
- Настройка парсера RSS-лент и запись сырой информации о статьях в базу данных (сбор Raw Data)
- Составление алгоритма определения тем новостей за определенный период (задача кластеризации) и записи информации в БД (processed data)
- Разработка веб-интерфейса с топом всех новостей и различными параметрами
Сбор ссылок на СМИ
Сбор ссылок я осуществлял с помощью программы Content Downloader (http://sbfactory.ru/). Крайне рекомендую! Программа платная, но не дорогая (от 1000 до 2000 рублей в зависимости от кол-ва потоков) Научиться пользоваться не сложно – есть много обучающих материалов и автор активно выходит на связь. Я пользуюсь не самой новой версией, просто потому что привык к старому интерфейсу.
Алгоритм сбора ссылок выглядел следующим образом:
а) сбор ссылок на страницы сайта http://news.yandex.ru/ методом массового обхода всего сайта (есть такая функция в Content Downloader). Весь сайт само собой обойти не удастся да и не нужно. Я собрал несколько тысяч страниц, чего вполне хватило.
б) сбор ссылок на новости СМИ со страниц, собранных выше. Чтобы указать программе, что именно нужно парсить, нужно просмотреть html-код искомого элемента. Нужная ссылка выглядит как-то вот так:
<a class=”b-link” …здесь всякий мусор… href=”http://russian.rt.com/article/68852″ target=”_blank”>Россия в 2015 году укрепит войска в Крыму, Калининграде и Арктике</a>
Указываем программе границы парсинга:
начало:
<a class=”b-link”{skip}”href=”
конец:
” target=”_blank”>
({skip} – макрос позволяющий включить в границу все, что угодно до тех пор пока не встретится последовательность символов, которая стоит после него)
Указываем “не включать границы” в парсинг (нам ведь нужна только ссылка а не html код)
Указываем что это повторяющиеся границы (то есть, мы говорим программе, что если найдется много таких границ, собирать нужно последовательно все, что найдется)
Запускаем парсинг. В результате получаем огромный список ссылок на новости.
Но новости сами по себе нам не интересны, нам нужны ссылки на ресурсы.
в) Получение списка СМИ. Воспользуемся старым добрым Excel. Выгружаем список в таблицу. Удаляем все вхождения “http://” и “www.” через ctrl+h. Далее пользуемся функцией “разделить по столбцам”. Разделителем будет слеш “/”. Удаляем все, кроме первого столбца. Мы почти у цели – осталось удалить дубли (новости то разные, но ресурсы могут быть одинаковыми). Выделяем столбец, жмем “удалить дубли” – готово!
У меня получилось более 2000 самых разных ресурсов.
Сбор ссылок на RSS-ленты этих ресурсов
Для меня этот этап оказался самым унылым. Но начнем с начала. Прежде чем собирать список RSS желательно отсортировать список СМИ по популярности. Ведь для теста сойдет и сотня источников, но лучше сразу отобрать самые рейтинговые из них. Выход очень простой – собрать ТИЦ (тематический индекс цитирования Яндекса) для всего списка.
По запросу “массовое определение ТИЦ” на первом же месте видим http://www.raskruty.ru/tools/cy/
То что надо! Делаем три подхода (больше 1000 url за раз нельзя) – копируем результат в новую табличку Excel, сортируем по убыванию значения ТИЦ. Есть!
А теперь, собственно, вопрос знатокам. Как, зная ссылку на ресурс, получить ссылку на его rss-ленту?
Казалось бы, что может быть проще? Ан, нет. Нет никакой закономерности в формате ссылок на rss у ресурсов. Более того страницы rss-лент не индексируются. Поэтому что-то вроде “inurl: site.ru rss” в поисковиках почти никогда не работает.
Оказалось, существует специальный поисковик RSS – http://ctrlq.org/rss/
Однако верную ссылку на RSS при указании запроса в виде site:thenextweb.com показывает слишком редко.
Потом я вспомнил, что существует Яндекс Лента – она же rss-читалка от Яндекса. Проверив несколько топовых сайтов, я был в полном восторге – вбиваешь ссылку на сайт, получаешь ссылку на rss. Но покопавшись внимательней, обнаружил такие досаднейшие недочеты:
- Ссылки на rss часто устаревшие. При клике по такой ссылке, как правило, попадаешь на 404 страницу. А новости, которые показываются Яндексом с такого ресурса, могут датироваться даже 2006 годом.
- Для Яндекса сайт c www и без – два разных ресурса.
- Бывает не находит ссылку вовсе.
Смирившись с тяжкой судьбой, решил все же автоматизировать процесс поиска rss через яндекс-подписки. Ничего не получилось: проблема авторизации, https соединение и подгрузка rss-ссылки “на лету”. Признаюсь, пробовал даже автокликер, но все впустую.
Пришлось собирать ручками. Если не находил через Яндекс – искал вручную на сайте. В итоге собрал с приятелем около 500 ссылок. Потом решу, как добить остальное.
Настройка парсера RSS-лент и запись информации о статьях в базу данных
Я использовал php + mysql для решения задачи.
- “Верхний” цикл – обход rss-лент всех имеющихся ресурсов
- “Нижний” цикл – обход всех новостей с конкретного ресурса и выявление “свежих”.
Здесь стоит задача определения “свежести” новости. В базе данных заводится таблица “rssurls”, которая состоит из двух полей: rssurl и lastdate.
Для каждого ресурса в базе нужно при каждом обходе записывать дату последней замеченной на ресурсе статьи. Так при следующем обходе скрипт сравнивает дату конкретной статьи из RSS ленты с датой из базы и если время статьи “новее” – записывает статью в базу и обновляет дату последней публикации.
Для статей заводится отдельная таблица “articles”, куда в отдельные поля сохраняется следующая информация: id записи, rssurl, title, date, link, category, record (время записи в базу) и tags(об этом поле – в следующей части).
Title, date, link, category – парсятся из rss. RSS, кто не знает, представляет и себя обыкновенный XML-файл, а значит с ними наверняка легко работать встроенными функциями php. Так и оказалось – есть замечательная функция simplexml_load_file, которая позволяет легко получать необходимые элементы. Но у этой функции есть недостаток – она не предназначена для работы с внешними источниками. По хорошему нужно работать через cURL, но для начала и так сойдет. Около четверти ресурсов отказывались подгружаться через simplexml_load_file, хотя ссылка в браузере открывалась.
Не смотря на то, что RSS довольно “строг”, формат данных очень часто отличался. Особенно все плохо с датами: кто указывает timezone, а кто нет, кто указывает дни недели, а кто нет и т.д. Пришлось долго повозиться с регулярными выражениями, чтобы привести все нормальный вид.
Составление алгоритма определения тем новостей
Самый интересный и творческий этап. Наверняка можно было бы применить модные и сложные статистические алгоритмы кластеризации. Но мне хотелось попробовать провести анализ “вручную” и в целом – получилось неплохо.
Я решил, что “темы” нужно вычленять из заголовков исходя из частоты упоминаний слов в них. Это довольно очевидно, но считать частоту слов в необработанном виде совершенно бессмысленно. Нужно как-то приводить к начальной форме все слова из конкретных заголовков.
Покопавшись в интернете я наткнулся на потрясающую библиотеку phpmorphy – http://phpmorphy.sourceforge.net/dokuwiki/
Библиотека среди прочего позволяет получать из любого слова на русском языке его базовую форму (по-научному процесс называется “лемматизация”). Это как раз то, что нам нужно!
Используя библиотеку, я написал функцию, которой на вход подается заголовок новости, а на выходе отдается строка из “нормированных” слов. Пример:
“Родители пропавших в Мексике студентов ворвались в казармы в Игуале” превращается в
“СТУДЕНТ РОДИТЕЛЬ ПРОПАСТЬ МЕКСИКА КАЗАРМА ВОРВАТЬСЯ ИГУАЛ”
(все вспомогательные знаки, кроме тире, игнорируются)
Дополняем функцию записи новости в таблицу articles, добавляя в поле tags строку с “нормированным” заголовком.
При первом же подсчете частот слов и их сортировке стало очевидно, что выбран верный путь. Стало ясно, что нужно добавить список стоп-слов, которые сами по себе не могут формировать новостную “тему”, но их частота упоминаний велика:
“НА”, “ЗА”, “ПО”, “ГОД”, “НЕ”, “БЫТЬ”, “ДО”, “ИЗ”, “ИЗА”, “ДЛЯ”, “ИЗ-ЗА”, “СТАТЬ”, “ЧТО”, “БОЛЕЕ”, “МОЧЬ”, “ПРИ”, и ряд других. Удаляем стоп-слова из нормированных заголовков.
Казалось бы после этого – все должно быть хорошо. Но часто попадаются “нормальные” слова, которые нельзя включить в стоп-лист, но которые точно не формируют “тему”. Это объясняется тем, что одно и тоже слово встречается в заголовках, посвященных разным темам. Особенно часто это касается географических названий.
Встает вопрос как определять “ненастоящие” слова и убирать их из выборки? Интуиция подсказывает, что следует обратить внимание на следующие по популярности слова из заголовков, которые содержат проверяемое слово.
Пример распределения частот для “ненастоящих” слов “новый” и “СМИ”:
- 645 – НОВЫЙ
- 44 – РОССИЯ
- 29 – СТАРЫЙ
- 28 – УКРАИНА
- 24 – ДОНБАСС
- 23 – НОМЕР
- 387 – СМИ
- 54 – РОССИЯ
- 43 – РОССИЙСКИЙ
- 35 – СИЛА
- 29 – ВОЗДУШНО-КОСМИЧЕСКИЙ
- 26 – РОСКОМНАДЗОР
А теперь “настоящие” слова “Нефть” и “Обстрел”
- 359 – НЕФТЬ
- 152 – ЦЕНА
- 87 – БАРРЕЛЬ
- 63 – НИЖЕ
- 57 – ДОЛЛАР
- 52 – УПАСТЬ
- 279 – ОБСТРЕЛ
- 145 – АВТОБУС
- 79 – ВОЛНОВАХА
- 50 – ЧЕЛОВЕК
- 46 – ОБСТРЕЛЯТЬ
- 43 – ДОНБАСС
По форме “хвоста” можно определить “настоящесть” найденной темы. О формулах – чуть ниже.
Еще была проблема дублирования одних и тех же “тем”. Я решил, что это из-за повторного учета слов. Будем считать, что новость не может быть посвящена разным темам одновременно. Если мы отнесли заголовок к определенной “настоящей” теме, то мы должны удалить ее из выборки, используемой для нахождения последующих тем.
Применив данный подход я практически полностью избавился от проблемы дублирования.
Вернемся к “настоящести”. Я не стал особо изощряться с формулами. Считал среднее геометрическое для значений частот пяти слов из “хвоста” и делил на частоту исходного слова. Эмпирическим путем пришел к коэффициенту 0,17. Если коэффициент “настоящести” равен или выше этого значения, считаем тему “настоящей”.
При нахождении каждой отдельной “настоящей” новости в новую таблицу top записывается “измерение”: название темы, три ключевых слова, частота основного слова, дата начала периода измерения, дата конца периода измерения, html-код трех ссылок на примеры статей по теме.
- Веб-интерфейс с топом всех новостей
Я настроил cron так, чтобы обход всех rss-лент и сбор новостей происходил раз в десять минут.
Сами “измерения” происходят за 6-часовой период раз в 6 часов (пока что). Позже, когда соберем больше ссылок на rss, сделаю периоды меньше а сами измерения чаще. (оптимальные параметры еще предстоит выяснить. Сам Яндекс обновляется раз в 20 минут)
В самом веб-интерфейсе вывожу данные за последний период, где “частоты” сравниваются со значением из предыдущего измерения:
Задача минимум выполнена. Надеюсь, работа была проделана не зря )
learndata.ru
*Плагин можно подключить в разделе консоли «Плагины»
Yandex.News Feed by Teplitsa — плагин позволяет организовать трансляцию материалов сайта для сервиса Яндекс.Новости.
Плагин формирует RSS-ленту сайта, которая транслируется в Яндекс.Новости. Плагин автоматически выбирает для трансляции материалы за последние восемь дней (в соответствии с правилами индексации Яндекса).
Обязательно ознакомьтесь с требованиями Яндекса — http://help.yandex.ru/news/info-for-mass-media.xml
Для подключения трансляции материалов сайта в Яндекс.Новости необходимо отправить заявку на почту info@news.yandex.ru со ссылкой на RSS-ленту.
Администрация Яндекса оставляет за собой право отклонить оставленную заявку.
Настройки плагина находятся в разделе консоли «Настройки» — «Яндекс.Новости».
Примечание: если в настройках постоянных ссылок сайта выбран вариант «По умолчанию» (http://site.cerkov.ru/?p=123), то лента для Яндекс.Новостей не заработает.
URL трансляции — адрес, по которому будет доступна RSS-лента. По умолчанию ее адрес site.ru/yandex/news. При необходимости этот адрес можно поменять. Этот адрес нужно будет выслать Яндексу с заявкой на добавление ленты в Яндекс.Новости.
Типы записей для трансляции — в этом поле можно указать какие типы контента попадают в трансляцию. По умолчанию плагин выбирает только записи с типом post.
page — выводит в ленту только страницы.
post,page — выводит в ленту и страницы, и записи.
Ссылка на логотип для описания сайта на сервисе Яндекс.Новости — в это поле нужно вставить полную ссылку на изображение, оно будет использоваться в качестве логотипа на странице трансляции. Размер изображения не должен превышать 100px по наибольшей стороне, допустимые форматы файла изображения — .jpg, .png, .gif.
Ссылка на квадратный логотип — в это поле нужно вставить полную ссылку на изображение, оно будет использоваться в качестве логотипа рядом с новостями. Минимальный размер изображения 180х180рх, изображение должно быть строго квадратное. Допустимые форматы файла изображения — .jpg, .png, .gif.
Таксономия для фильтрации трансляции — тут можно задать фильтры для вывода записей, к примеру, выводить записи только из заданных рубрик или с определенными метками. Выберите в списке по какому параметру нужно выводить записи.
Термины для фильтрации трансляции — в этом поле нужно указать id таксономии, которая была задана в поле «Таксономия для фильтрации трансляции». Можно указать один или несколько id (через запятую).
Как найти id рубрик и меток — зайдите в раздел консоли «Записи» — «Рубрики» или «Метки», зайдите в редактирование нужной рубрики/метки, для этого нажмите на название рубрики/метки. В адресной стоке браузера будет путь, id рубрики/метки идет после «ID=».
Примечание: если в поле «Типы записей для трансляции» вы указали вывод страниц и записей, а в поле «Термины для фильтрации трансляции» указали id рубрики или метки, то в ленту будут выводиться только записи из указанной рубрики или метки.
support.prihod.ru
- Тэги <rss>, <channel>, <title>, <link>, <description>, <language> и <item>
-
Пример использования:
<?xml version="1.0" encoding="UTF-8"?> <rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:georss="http://www.georss.org/georss"> <channel> <title>Пастернак</title> <link>http://example.com/</link> <description> Проект о фруктах и овощах. Мы рассказываем о том, как выращивать, готовить и правильно есть. </description> <language>ru</language> <item> ... </item> </channel>
Описание тегов:
- <rss> — используемый формат данных. Экспорт данных для размещения материалов в Дзене осуществляется в XML-based формате RSS 2.0. Мы поддерживаем RSS, HTML5 и микроформаты, Media RSS, GeoRSS.
- <channel> — информация об источнике и его содержании. Содержит внутри тэги:
- <title> — название издания.
- <link> — адрес сайта издания.
- <description> — описание издания.
- <language> — язык статьи в стандарте ISO 639-1.
- <item> — внутри этого тега содержится материал издателя. Таких материалов в RSS-ленте для Дзена должно быть не менее 50.
- Тэги <title>, <link>, <pubDate>, <author>, <category>, <description> и <content:encoded>
-
Пример: использования:
<title>Андроид восстановит ферму в Японии</title> <link>http://example.com/2023/07/04/android-happy-farmer</link> <guid>2fd4e1c67a2d28fced849ee1bb76e7391b93eb12</guid> <pubDate>Tue, 4 Jul 2023 04:20:00 +0300</pubDate> <author>Петр Стругацкий</author> <category>Технологии</category> <description><![CDATA[ Заброшенную землю рядом с токийским университетом Нисёгакуся передали андроиду с внешностью известного японского хозяйственника. ]]></description> <content:encoded><![CDATA[ <p> Здесь находится полный текст статьи. </p> ]]></content:encoded>
Описание тегов:
- <title> — заголовок статьи.
- <link> — заголовок статьи. URL сайта, данные которого транслируются в потоке. Ссылка в RSS должна быть идентичной ссылке на сайте. Это условие поможет нашему рекомендатору.
Например, эти URL считаются идентичными:
- http://example.com/2023/07/04/android-happy-farmer
- http://example.com/2023/07/04/android-happy-farmer
А эти нет:
- http://example.com/2023/07/04/android-happy-farmer
- http://example.com/2023/07/04/android-happy-farmer/
- http://example.com/2023/07/04/android-happy-farmer?utm_medium=cpc&utm_source=yandex. {source_type}&utm_campaign={campaign_id}&utm_content={ad_id}&utm_term={keyword}
- <pubDate> — дата публикации в формате RFC822, то есть «Wed, 02 Oct 2002 15:00:00 +0300». Если этого тега нет, то Дзен будет считать дату по моменту загрузки RSS, а это не всегда верно.
- <author> — автор статьи.
- <category> — тематика сообщения. Разметка сообщений позволит Дзену рекомендовать их заинтересованным читателям. Статья может относиться сразу к нескольким тематикам.
- <description> — краткая аннотация статьи.
- <content:encoded> — полный текст статьи. Мы принимаем статьи не короче 300 знаков.
- Тэг <media:rating>
-
Мы просим использовать этот тег для разметки «взрослого» контента, чтобы в случае нарушения правил сервиса Дзена пессимизировался не весь сайт, а только откровенные материалы. Обязательно отмечайте «взрослый» контент, в противном случае все материалы вашего сайта будут пессимизироваться.
Так должна выглядеть разметка контента, который можно показывать подросткам от 13 лет:
<media:rating scheme="urn:simple">nonadult</media:rating>
Так должна выглядеть разметка «взрослого» контента:
<media:rating scheme="urn:simple">adult</media:rating>
- Тэги <figure>, <img>, <video> и <figcaption>
-
Мы просим прислать ссылки на все иллюстрации и видео, которые есть в статье. Статья должна содержать как минимум одну картинку шириной не менее 400 пикселей.
Пример использования:
<figure> <img src="http://example.com/2023/07/04/pic1.jpg" width="1200" height="900"> <figcaption> Первый андроид-фермер смотрит на свои угодья <span class="copyright">Михаил Родченков</span> </figcaption> </figure>
Описание тегов:
- <figure> — иллюстрация или видео. Каждая иллюстрация или видеоролик размечаются отдельным тегом <figure>.
- <figcaption> — подпись под иллюстрацией или видео.
- <img> — иллюстрация в формате JPEG, GIF, PNG, размером не меньше 600 пикселей в ширину. Первая иллюстрация в статье, размеченная этим тегом, используется для превью в ленте Дзена.
- <video> — видео поддерживаемых форматов (MP4 (H.264), YouTube, Vimeo).
- Тэги <media:content>, <media:description>, <media:copyright>
-
Вы можете использовать альтернативный способ вставки медиа-контента в RSS с этими тегами.
Пример использования:
<item> <media:content type="image/jpeg" medium="image" width="900" height="600" url="http://example.com/2023/07/04/pic1.jpg"> <media:description type="plain">Первый андроид-фермер смотрит на свои угодья</media:description> <media:copyright>Михаил Родченков</media:copyright> </media:content> </item>
Описание тегов:
- <media:content> — иллюстрации, аудио- или видеоролики поддерживаемых форматов:
- Изображения в формате JPEG, GIF, PNG.
- Видеоролики в формате MP4 (H.264), YouTube, Vimeo.
- Аудиоролики в формате MP3, SoundCloud.
- <media:description> — подпись под иллюстрацией или видео.
- <media:copyright> — авторские права на иллюстрации или видео.
- <media:content> — иллюстрации, аудио- или видеоролики поддерживаемых форматов:
- Тэг <enclosure>
-
Это обязательный элемент для иллюстраций, аудио- и видеофайлов.
Если в сообщении содержится несколько иллюстраций или иллюстрация и видеофайл, элемент <enclosure> должен быть повторен. Если в статье есть несколько вариантов одной иллюстрации, отличающихся размером, то в <enclosure> нужно указать URL изображения наибольшего размера. Тег <enclosure> дублирует тэг <figure>, но оба тега обязательны. Второй находится в теле статьи, первый — вне тела в описании.
Пример использования:
<enclosure url="http://example.com/2023/07/04/pic1.jpg" type="image/jpeg"/> <enclosure url="http://example.com/2023/07/04/pic2.jpg" type="image/jpeg"/> <enclosure url="http://example.com/2023/07/04/video/42420" type="video/x-ms-asf"/>
- Тэги <pdalink> и <amplink>
-
Пример использования:
<pdalink>http://m.example.com/2023/07/04/android-happy-farmer</pdalink> <amplink>http://amp.example.com/2023/07/04/android-happy-farmer</amplink>
Описание тегов:
- <pdalink> — ссылка на адаптированную для мобильных устройств версию сообщения.
- <amplink> — ссылка на AMP-версию сообщения.
- Встроенный код
-
Мы просим вырезать весь HTML, который не описан в настоящих рекомендациях к RSS, например:
- Видео
<iframe src="URL Vimeo или YouTube" height="480" width="640"/>
- Инстаграм, твиттер и фейсбук
<iframe src="//instagram.com/p/INSTID/" ...> </iframe> <blockquote class=“twitter-tweet” ...> <p>Status text</p> <a href=“https://t.co/...”>media reference</a> </blockquote> <script async src=“//platform.twitter.com/widgets.js” charset=“utf-8”></script> <div class=“fb-post” data-href=“facebook_url_to_the_post”> ... </div> <div class=“fb-video” data-href=“facebook_url_to_video”> ... </div>
- Видео
yandex.ua
Установка и настройка RSS for Yandex Zen
Имеет ли смысл добавлять ваш сайт в Дзен? Будет ли с него идти трафик? Будет ли он большим? Это все на ваше усмотрение. Лично я придерживаюсь такого мнения, что лишним не будет. Ничего не теряя можно получить дополнительный приток посетителей. Пусть он не будет большим или стабильным, но он будет, и от меня при этом не потребуется каких-то лишних телодвижений и вложений (кроме одноразовой настройки ленты).
Итак, традиционно плагин RSS for Yandex Zen можно будет либо скачать из официального репозитория (по приведенной ссылке), а потом установить перенеся содержимое архива на блог по ФТП. Либо можно сразу из админки Вордпресса поискать его по названию на вкладке из левого меню «Плагины» — «Добавить новый». Подробнее смотрите в заметке про установку плагинов в Вордпресс.
Дальше все по накатанной — устанавливаете и активируете. Потом заходите в настройки плагина выбрав из левого меню «Настройки» — «Яндекс Дзен»:
По стандартам ленты для Дзена в ней должно быть не менее 50 записей (я сделал 150 — пусть будет). Так же следует указать тематику, к которой можно отнести материалы вашего сайта и определиться с принадлежностью материалов к контенту для взрослых.
По умолчанию плагин будет собирать в ленту только посты — если нужно добавить еще и страницы, то воспользуйтесь подсказкой в строке «Типы записей». Все остальные поля заполняйте по усмотрению — в случае чего переделаете.
При создании новых постов или редактировании старых под окном для ввода текста вы найдете блок под названием «Яндекс Дзен», где сможете внести изменения в настройки плагина относительно только этой публикации. Если конкретнее, то можно будет поменять тематику, поменять отношение записи к взрослому контенту и, наконец, можно будет вообще убрать эту запись из ленты формируемой для Дзена. Очень удобно, на мой взгляд.
ktonanovenkogo.ru