Как заработать на сайте?
Доход от сайта
Разбор сайтов
Советы на форуме
Как создать сайт?
Cоздать форум
Хостинг
Управление сайтом
> Верстка и скрипты
Доменные имена
Поисковые системы
Непоисковое продвижение
Статистика
Баннеры
Контекстная реклама
Копирайтинг и контент
Частные вопросы
Обсуждения статей
Архив рассылки
О форуме

Lisa.pp.ru / Форумы / Создание сайтов / Программирование, верстка, готовые скрипты / как сделать экспорт новостей?

как сделать экспорт новостей?

Этот проект закрыт. Архив оставлен для истории.

Страницы: 1
как сделать экспорт новостей?
 
есть такая фишка у Яндекс-новости, есть у psy.piter.com... Как это делается?
спасибо)
 
Я не программист... Тут нужно читать про RSS и XML...
 
Ташка, а какой движок? Во многих движках такая возможность уже реализована.

Если нет - это формат RSS, просто пишется еще один шаблон для вывода в соответствии со спецификацией. Посмотрите экспортный вариант на любом сайте, там по коду понятно, каким должен быть шаблон.
 
Цитата
Ташка, а какой движок? Во многих движках такая возможность уже реализована.
Если нет - это формат RSS, просто пишется еще один шаблон для вывода в соответствии со спецификацией. Посмотрите экспортный вариант на любом сайте, там по коду понятно, каким должен быть шаблон
.

спасиб, посмотрю)
 
Хорошо, пусть не совсем новости. Экспорт некоего файла в другой сайт, то что было бы легко через ssi, но без них? Это возможно как-то?
 
Если совсем ничего нету, то можно через JS. Т.е. на вашей стороне делается файл news.js, в который пишутся новости, но не просто текстом, а через "document.write" (я в js не сильна, но если очень надо, могу поискать примеры). А желающие себе вставляют ява-скрипт.

О, пример: http://nanya.ru/type/ именно так работает.
 
Цитата
Если совсем ничего нету, то можно через JS. Т.е. на вашей стороне делается файл news.js, в который пишутся новости, но не просто текстом, а через "document.write" (я в js не сильна, но если очень надо, могу поискать примеры). А желающие себе вставляют ява-скрипт.
О, пример: http://nanya.ru/type/ именно так работает.



О, да, это было бы гораздо лучше
Посмотрите если не трудно, и я поищу) thanks
 
Цитата
Я не программист... Тут нужно читать про RSS и XML...



Яндекс специально не даёт экспортировать новости в RSS, я с разработчиками этой штуки общался.
 
alexf2000, ничего не поняла
экспортирует не Яндекс, а сам владелец сайта.

А Яндекс-новости, насколько я помню, даже предалгались к размещению на желающих сайтах.
 
Цитата
alexf2000, ничего не поняла
экспортирует не Яндекс, а сам владелец сайта.
А Яндекс-новости, насколько я помню, даже предалгались к размещению на желающих сайтах.


Экспорт по запросу. Например мне нужны новости только по каким-то словам - на самом яндексе их можно посмотреть, а экспортировать нельзя.
 
а, импорт Яндекс-новостей к себе на сайт

Получаем, парсим rss сами и вставляем
 
Цитата
а, импорт Яндекс-новостей к себе на сайт
Получаем, парсим rss сами и вставляем
только выбрать тему новостей, после и из неё можно исключить ненужное


Экспорт в формате RSS
RSS - международный формат, специально созданный для трансляции данных с одного сайта на другой. Используя приведенные ниже экспортные файлы в формате RSS, вы можете разместить на своей странице заголовки и аннотации сюжетов Яндекс.Новостей. Кроме того, посредством RSS можно читать новости специальными программами - агрегаторами новостей - и таким образом оперативно узнавать об обновлениях нужных сайтов. Подробнее об RSS в каталоге Яндекса (общие сведения, спецификация, ссылки на ресурсы по теме).
экспортный файл в формате RSS 2.0

Hardware
http://news.yandex.ru/hardware.rss

Hi-Tech
http://news.yandex.ru/computers.rss


Авто
http://news.yandex.ru/auto.rss

и Т.Д. и Т.П.
 
А какой код на своей странице вставлять? Вот в чём вопрос?
 
Если хочешь RSS - пишешь (берешь) функцию RSS -> HTML.

Поделиться не могу - в единственном месте, где я это использую, если встроенная возможность в битриксе, а внутрь я не залезала, работает, и отлично
 
Импортирование информации с чужого сайта на свой сайт в свой дизайн. (На примере импортирования прогнозов погоды с Yahoo.)

Добре, господа!

Пример предназначен для тех, кто начинает работать с php, и не только для них.

Результатом работы программы(скрипта) является прогноз погоды на 5 дней для любого, интересующего Вас города, выводимый в виде, который нравится именно Вам, а не дизайнерам сайта-донора.

Информация в таких случаях берется с известных серверов прогноза погоды (где не пишут фразу "запрещено использование информации" и т.п.). В данном случае используется сервер http://weather.yahoo.com/ , на котором есть страницы с погодой для довольно большого количества городов, и практически всегда можно найти если не интересующий Вас город, то ближайший ему и идентичный по погодным условиям.

Это законченный проект, работающий на сайте http://sim-sim.ru в разделе туризма "погода в мире".

Единственным недостатком является лишь то, что админу приходится вводить в текстовый файл (возможен вариант с mysql, но в том случае мне было проще сделать в файле) название населенного пункта на родном языке и ссылку на страницу с прогнозом погоды на него на сервере Яхо. Но никто за Вас этого делать не будет.

Посему, скрипт состоит из 2-х частей:

1. Файл с администрированием (вводится в первую строку название города, на следующей строке - ссылка). Разбирать работу данной части, думаю, не стоит, комментариев более чем достаточно.
2. Файл с самой программой. Работа программы будет подробно описана ниже.
1. Администрирование.
Выводим на экран форму с паролем pass.

В окне вводятся:

номера
названия
ссылки
Затем, после нажатия на кнопку и проверки пароля, записываем новый список в файл.

<html>
<head>
<title>admin weather</title>
</head>

<body>

<?php

// адрес файла, в котором и будут записываться названия городов со ссылками
$adr=$DOCUMENT_ROOT."/weather/weather.ini";
$password='pass'; // простенькая система авторизации
$eror='Password eror!';
$old=file($adr); // читаем то, что сейчас есть в файле

if ($submit) { // проверяем на нажатость кнопки
if ($pass==$password) {
$fp=fopen($adr,"w");
fwrite ($fp, $ini); // записываем в файл измененные данные
fclose($fp);
$old=file($adr);
}
else {
echo $eror;
}
}
?>


<form method=post action="<?php echo $PHP_SELF?>">
// информация, введенная в форму, обрабатывается этим же файлом
password:<input type=text name=pass><br>
inicialisation:<textarea name="ini" rows=15 cols=60>
<?
for ($i=0; $i<sizeof($old); $i++) {
echo $old[$i], ""; // выводим на экран текущий вариант файла
}
?>
</textarea>
<br>
<input type=submit name="submit" value="Enter">
</form>



</body>
</html>

После ввода информации в файл в виде, получаем:

50
Ларнака
http://weather.yahoo.com/forecast/Larnaca_CY_f.html
51
Пафос
http://weather.yahoo.com/forecast/Paphos_CY_f.html

"44" - номер города.
"Ларнака" - название города.
"http://weather.yahoo.com/forecast/Larnaca_CY_f.html" - ссылка на погоду в городе Ларнака на Яхе.
Ссылки на города организовываются по принципу:

<a href=http://www.sim-sim.ru/catalogue/weather.php?weather=50>Ларнака</a>

А можно так:

<a href=http://www.sim-sim.ru/catalogue/weather.php?city=Ларнака>Ларнака</a>

Но если город из друх слов, то в пробелах пишем "%20"

В таком случае, номера городов в списке не нужны:

Ларнака http://weather.yahoo.com/forecast/Larnaca_CY_f.html
Пафос http://weather.yahoo.com/forecast/Paphos_CY_f.html
Если у нас не текстовый файл, а mysql, то все проще.

Если кому понадобится вариант с mysql, пишите мне totoeval@mtu-net.ru

2. Программа (собственно, адаптер чужого кода к Вашему сайту).
<table width=100% border=0 cellspacing=0 cellpadding=2 bgcolor=<? echo $brdcolor; ?>>
<tr>
<td>

<br>
<!----------------------- FORECAST ------------------------->

<?php

$ini=$DOCUMENT_ROOT.'/weather/weather.ini';
$region=file($ini); // читаем файл со списком городов-ссылок а массив $region


// определение координат искомого города
for ($i=0; $i<sizeof($region); $i++) {
if (trim($region[$i])==$weather) { // ищем номер города в списке
$city=trim($region[$i+1]); // название города
$adr=trim($region[$i+2]); // адрес страницы
}
else {
}
}

// если у нас передается информация не номером города, а названием, то:
for ($i=0; $i<sizeof($region); $i++) {
$city=str_replace($city,"%20"," "); // заменяем "%20" на " "
if (trim($region[$i])==$city) { // ищем название города в списке
$adr=trim($region[$i+1]); // адрес страницы
}
else {
}
}

// Входная информация для дальнейшего кода - $adr (адрес страницы
// прогноза погоды для города на сайте http://weather.yahoo.com)
// и $city - название города на родном языке.
// фразы для поиска полезной информации. Оригинал фраз можно обнаружить
// на странице, например, этой,
// проанализировав код. здесь заводим в переменные фразы, по которым будем
// искать нужную информацию (градусы, описания погоды, картинки). Используем
// фразы до и после необходимой информации. Этот блок в будущем придется
// изменять, когда на оригинале (weather.yahoo.com) изменится код страниц.
// На 14 авг. 2001 он работает.

$begin_screen='FORECAST ----'; // начальная фраза таблицы с прогнозом погоды
$end_screen='</b></td></tr></table></td></tr></table>'; // последняя фраза таблицы
$post_gradus='</font></b><'; // после градусов
$before_gradus='<font size="3" face="arial">'; // перед градусами
$before_image='http://us.i1.yimg.com/us.yimg.com/i/we/fc/'; // перед картинкой
$post_image='.gif'; // после картинки
$before_forecast='top><font face="arial" size="2">'; // перед фразой погоды
$post_forecast='</font></td><td>'; // после фразы погоды


// массивы для переводов даты и описаний погоды с английского языка
// на родной (в данном случае использован вариант перевода с
// буржуйского на язык, которым разговаривал Ленин.
$endat=array(" ","Mon","Tue","Wed","Thu","Fri","Sat","Sun",
"May","Jul","Jun","Aug","Sep","Oct",
"Nov","Dec","Jan","Feb","Mar","Apr"); // английские даты
$rudat=array(" ","понедельник","вторник","среда","четверг",
"пятница","суббота","воскресенье",
"мая","июля","июня","августа","сентября","октября","ноября",
"декабря","января","февраля","марта","апреля"); // родные даты
$eng=array(" ","Thunderstorms","Sunny","Partly Cloudy",
"Showers","Rain","Mostly Cloudy","Tstorms","Drizzle","Cloudy",
"Flurries","Fog","High","Low","Clear","Sleet","Rain/snow",
"Snow Showers","Mixed Snow", "Rain", "Snow",
"Mixed"); // английские описания погоды
$rus=array(" ","гроза","ясно","переменная облачность",
"ливень","дожди","облачно","гроза","изморось","пасмурно",
"снегопад","туман","день","ночь","ясно","дождь со снегом",
"дождь со снегом","мокрый снег","снег с дождем","снег",
"переменно"); // российские аналоги погоды

$brdcolor='#ffffff'; // цвет рамки таблицы прогноза (белый)
$bgcolor='#eeeeee'; //цвет фона ячеек таблицы (лучше - цвет фона страницы)

// А Здесь начинается код программы, который изменять не придется.

// занимаемся созданием даты, выводимой на экран.

Функция time() даст нам текущее время. Функцией date(d." ".M,$t[$i]) получаем дату текущего и последующих 4 дней, а date(D,$t[$i]) дает нам дни недели всех 5 дней. А затем переводим даты с английского языка на родной.

$t=array(4);
$d=array(4);
$dn=array(4);
for ($i=0; $i<=4; $i++) {
$t[$i]=time()+$i*86400;
$d[$i]=date(d." ".M,$t[$i]);
$dn[$i]=date(D,$t[$i]);
// переводим слова в дате и получаем даты на родном языке
for ($j=0; $j<sizeof($endat); $j++) {
$d[$i]=str_replace($endat[$j],$rudat[$j],$d[$i]);
$dn[$i]=str_replace($endat[$j],$rudat[$j],$dn[$i]);
} // и получаем даты на языке, которым разговаривает наш нонешний Вова
}

// начинаем обрабатывать страницу.
// Выясняем строки начала и конца таблицы с прогнозом погоды.
// Затем, будем работать именно с этим блоком.



$screen=file($adr); // читаем страницу с прогнозом погоды в переменную $screen



for ($i=1; $i<sizeof($screen); $i++) { // обрабатываем строки с первой по последнюю
if (strpos($screen[$i],$begin_screen)==false) { //находим начало таблицы с прогнозом
if (strpos($screen[$i],$end_screen)==false) { //находим ее конец
}
else {$m=$i; // $m - номер последней строки таблицы
}
}
else {$k=$i; // $k - номер первой строки таблицы
}
} // Получаем с $screen[$k] по $screen[$m] - нашу таблицу с погодой.
// Потом будемработать именно с ней, чтобы не было лишних совпадений, и
// быстро работала программа.
// Можно ее выводить в "родном дизайне, но нам это не нравится
// Начинаем искать полезную информацию.

$grad=array(9); // массив из 10 чисел градусов температуры окружающей среды

$zed=0; // счетчик градусов
for ($i=$k; $i<=$m; $i++) { //работаем с градусами
//если нет градусов в строке (если нет фразы, стоящей перед градусами.
if (strpos($screen[$i],$before_gradus,0)==false) {
}
else {// если есть градусы в строке
$string_grad=$screen[$i]; // сохраняем строку с градусами в переменную
// разбиваем строку на массив строк по разделителю, которым
// является фраза перед градусами, таким образом, мы получаем в
// 1 элементе массива строку, которая начинается собственно с
// самого градуса погоды.
$string_grad=explode($before_gradus,$string_grad);
// определяем позицию начала фразы, идущей после градуса.
$end_grad=strpos($string_grad[1],$post_gradus,0);
// первый градус получаем, как подстрока, с 0-го символа до начала фразы после градуса.
$grad[$zed]=substr($string_grad[1],0,$end_grad);
$zed++; // инкремент счетчика градусов
$end_grad=strpos($string_grad[2],$post_gradus,0);
$grad[$zed]=substr($string_grad[2],0,$end_grad); // второй градус
$zed++; // инкремент счетчика градусов
}
} // в результате чего, мы получили все градусы на нашей странице

// переводим фаренгейты в цельсии
for ($i=0; $i<=9; $i++) {$grad[$i]=round(5/9*($grad[$i]-32));
}
// в варианте с забиранием информации со страницы с цельсиями
// эту строку стоит просто закомментировать. Я оставил так, просто каприз.
// переводим фаренгейты в цельсии

// находим слова погоды абсолютно аналогично поиску градусов
$zed=0; // счетчик описаний погоды
for ($i=$k; $i<=$m; $i++) { //работаем с описаниями
//если нет описания погоды в строке
if (strpos($screen[$i],$before_forecast,0)==false) {
}
else {// если есть описания в строке
$string_grad=$screen[$i]; // сохраняем строку с описаниями в переменную
$string_grad=explode($before_forecast,$string_grad);
$end_grad=strpos($string_grad[1],$post_forecast,0);
$forec[$zed]=substr($string_grad[1],0,$end_grad);
// перебираем все варианты слов в описаниях
for ($j=0; $j<sizeof($eng); $j++) {
// переводим слова
$forec[$zed]=str_replace($eng[$j],$rus[$j],$forec[$zed]);
}
$zed++; // инкремент счетчика описаний
}
} // в результате чего, мы получили все описания погоды на нашей странице


$zed=0; // счетчик слов картинок аналогично
for ($i=$k; $i<$m; $i++) { //работаем с картинками
//если нет описания погоды в строке
if (strpos($screen[$i],$before_image,0)==false) {
}
else {// если есть картинки в строке
$string_grad=$screen[$i]; // сохраняем строку с картинками в переменную
$string_grad=explode($before_image,$string_grad);
$end_grad=strpos($string_grad[1],$post_image,0);
$for_img[$zed]=substr($string_grad[1],0,$end_grad);
$zed++; // инкремент счетчика картинок
}
} // в результате чего, мы получили все картинки на нашей странице

?>
// публикуем результаты:
<table width=100% cellpadding=0 cellspacing=0 border=0>
<tr><td width=20% align=center><font size=3><b
// выводим название города, для которого отображается прогноз погоды
><? echo $city;
?></b><br></font></td></tr></table
><table width=100% cellpadding=0 cellspacing=0 border=0>
<tr><?
// выводим на экран ячейки с датами и днями
for ($i=0; $i<=4; $i++) {
echo "<td width=20% align=center><font
size=2><b>$d[$i]<
br>$dn[$i]</b></font></td>";
}
?></tr
></table
><table width=100% cellpadding=0 cellspacing=0 border=0
bgcolor=<? echo $brdcolor; ?>
><tr><td
><table width=100% cellpadding=2 cellspacing=1 border=0
><tr><?
$zed=0; // счетчик выводимых градусов
// выводим ячейки с прогнозами - картинки, градусы, описания
for ($i=0; $i<=4; $i++) {
$zed1=$zed+1;
echo "<td width=20% align=center bgcolor=$bgcolor
valign=middle><img src=../pic/".$for_img[$i].".gif border=0
alt=".$forec[$i]."><br><br><font
size=2>".$forec[$i]."</font><br><br><font
size=3><b>".$grad[$zed]."°C<br>".$grad[$zed1]."°C</b>
</font></td>";
$zed=$zed+2;
}
?>
</tr></table>
</td>
</tr>
</table>

Картинки можно привязать к картинкам Яхи (названия аналогичных по погоде совпадают, как в моем случае), а можно сделать массивы соответствия слов-описаний погоды и Ваших картинок. Это по-желанию. Что долговечнее, трудно судить. И фразы-описания они могут изменить, и картинки переименовать. Можно, конечно договориться с админом Яхи, чтобы они не меняли один из этих элементов и отталкиваться от него, но у меня не было его телефона:о)

Теперь программа работает, и ее можно вставлять в свой дизайн.

Вот вариант: вышеупомянутая Ларнака

Если кого заинтересуют "вариации на тему" или возникнут вопросы, прошу писать мне sobolav@rambler.ru.

А также, пишите все, кто сможет посоветовать другие варианты. Всегда рад критике и возможности повысить свой уровень.
 
Т.Е. приведённый выше скрипт сам скачивает, парсит, и вставляет новости на мне необходимую страницу?
 
robinzone,
Вы попробуйте, разберетесь :)

Ничего, без участия того, кто делает, само все равно не сделается.
Страницы: 1
Рекомендуем
Лучшая система размещения статей «Миралинкс» - лучшая площадка для размещения статей.
«Бегун» - объявления.
AMN - Лучшая тизерная сеть
«Sape» - Купить и продать ссылки