Четене на RSS с Javascript

sizif

Registered
Здравейте!

Интересува ме дали е възможно да се прочете външен RSS-документ САМО с Javascript (без РНР)

Ако е възможно, дайте примерен код за ориентация.

Благодаря предварително!
 
crazy_pi4,

минах през Гугъл със същото търсене преди да пусна темата. За мен публикуването на линк за общо търсене е спам :(

Да допълня: скриптове, базирани на AJAX не ми помагат, защото при тях четенето напрактика се изпълнява от сървъра.
 
Генерира Javascript -код за връзка към РНР файл, който извършва парсването на RSS-документа.

Такова четене мога да си направя и сам. Изрично съм отбелязал, че достъп до документа с PHP не ми върши работа.

Интересува ме възможно ли е единствено с Javascript да получа достъп до външен RSS-документ.
 
Да, възможно е, http://www.dynamicdrive.com/dynamicindex18/gajaxrssticker.htm
Само трябва да си вземеш free Google API Key, там е описано. Има си и ДЕМО.
 
Galli,

този пример също е с AJAX. Разглеждах го снощи и за съжаление не ми върши работа.


Може би трябва да преформулирам въпорса си.

Как с Javascript да взема съдържанието на даден файл (txt, xml, html - без значение) и да го получа под формата на променлива?
 
Опитай да зареждаш rss-то в скрит iframe и го парсваш чрез XML DOM методите. Разгледай библиотеките за cross domain ajax reqests.
 
sizif каза:
Galli,

този пример също е с AJAX. Разглеждах го снощи и за съжаление не ми върши работа.


Може би трябва да преформулирам въпорса си.

Как с Javascript да взема съдържанието на даден файл (txt, xml, html - без значение) и да го получа под формата на променлива?
Защо не можеш да ползваш Ajax? Ако можеше да ползваш Ajаx, веднага щях да ти напиша скрипта :) , но и ти би се справил, с Аякс си го взимаш съдържанието, с един регулярен израз си изваждаш нещата. Толкова... :?:
 
Ще използвам RSS-потока без разрешение. Ако чета през сървъра, дори да имитирам браузър с cURL(); ще видят множество еднотипни заявки от едно и също IP и ще ме блокират.

I_V_O,

доколкото разбирам предлагаш същото нещо под друга форма или имаш предвид да взема стойността на фрейма и с AJAX да я пратя на сървъра?

F1r3Fl3x,

AJAX е доста условно. Ако посоката е:

браузър -> чужд сървър -> браузър -> моят сървър

..това би бил идеален варинат.

Ако отварянето на документа мине през браузъра (така че другия сървър да види реална клиентска заявка) може и да е AJAX.

Намерих нещо подобно, върви на ИЕ6, но не можах да го подкарам на ФФ/ Модзила.

Код:
<html>
<head>

</head>
<body>
<div id="stats">Tuk</div>

<script>

function processStateChange(){
  statusDiv = document.getElementById("stats");
  if (req.readyState == 0){ statusDiv.innerHTML = "UNINITIALIZED"; }
  if (req.readyState == 1){ statusDiv.innerHTML = "LOADING"; }
  if (req.readyState == 2){ statusDiv.innerHTML = "LOADED"; }
  if (req.readyState == 3){ statusDiv.innerHTML = "INTERACTIVE"; }
  if (req.readyState == 4){
    statusDiv.innerHTML = "COMPLETE"; 
    statusDiv.innerHTML = req.responseText; 
    }
}

req = new ActiveXObject("Msxml2.XMLHTTP");
if (req) {
    req.onreadystatechange = processStateChange;
    req.open("GET", "http://xml.webground.bg/actualno/lead/", true);
    req.send();
}

</script>
</body>
</html>

Снощи се опитах да добавя създаване на httpRequest и за други браузъри, но при тях пак не тръгна. Върви само под ИЕ.

Това е оригиналния код преди да тръгна да го модвам. Адресът който съм му дал да отваря е на легален RSS поток:
http://xml.webground.bg/actualno/lead/


След 3 дни опити в най-различни посоки съм забил отвсякъде :(
Можете ли да помогнете?
 
Това с еднотипните заявки не е проблем, ще се озориш малко да посъбереш 50-60 HTTP_USER_AGENT-a и ще ги пускаш на рандом. Ако не ти се занимава с това, ще се опитам да ти напиша Ajax код по-късно, защото точно сега ще излизам :)
 
paradox,

не ми се навлиза в детайли, но наистина е по-добре да не прекалявам.


F1r3Fl3x,

cURL и изобщо отваряне и четене от сървъра са лоши решения. За лични тестове са ОК, но не й за работещо приложение.

Ако предложиш решение с AJAX, ще ми помогнеш много.
 
Офф, Sizif, малко те подведох, сбърках малко в изказванията си.
С Ajax няма да стане :lol: Принципно има забрана за cross-site calls, и си мислех, че RSS-a има разрешение, но не е така. Сбъркал съм. Беше JSONP :lol:
Единственият ти вариант е с cURL, той не бави много и не натоварва сървъра а колкото до USER_AGENT-ите лесно ще си направиш една колекцийка.
За друго решение не се сещам :?
 

Back
Горе