Página principal » Codificación » Cómo crear una aplicación de lector RSS en JavaScript

    Cómo crear una aplicación de lector RSS en JavaScript

    RSS (Really Simple Syndication) es un formato estandarizado utilizado por los editores en línea para sindicar su contenido a otros sitios web y servicios. Un Documento RSS, también conocido como alimentar, es un Documento XML Llevando el contenido que un editor desea distribuir..

    Los canales RSS están disponibles en casi todos los sitios web de noticias y blogs para que sus lectores puedan Manténgase actualizado con sus contenidos.. También se pueden encontrar en sitios web no basados ​​en texto como YouTube, donde puede utilizar la fuente de un canal de YouTube para ser Informados de los últimos videos..

    Los programas que acceden a estas fuentes y leen y muestran su contenido se llaman Lectores RSS. Puede crear un programa de lector de RSS simple en JavaScript. En este tutorial, veremos cómo.

    Estructura de un feed RSS

    Un feed RSS tiene un elemento raíz llamado , Similar a Etiqueta encontrada en documentos HTML. Dentro de etiqueta, hay un elemento, algo así como en HTML, que incluye muchos subelementos Contiene el contenido distribuido del sitio web..

    Un feed suele llevar algo de información básica como el título, la URL y la descripción del sitio web y de la Publicaciones individuales actualizadas, artículos u otros contenidos. de ese sitio web. Estas informaciones se encuentran en </code>, <code><link></code>, y <code><description></code> elementos, respectivamente.</p> <p>Cuando estas etiquetas son <strong>directamente presente en el interior <code><channel></code></strong>, tienen el título, la URL y la descripción del sitio web. Cuando estan <strong>presente en el interior <code><item></code></strong> ese <strong>Contiene la información sobre las publicaciones actualizadas.</strong>, representan la misma información que antes pero la de los contenidos individuales que cada uno <code><item></code> representar.</p> <p>También hay algunos <strong>elementos opcionales</strong> que puede estar presente en una fuente RSS, proporcionando información complementaria como imágenes o derechos de autor sobre el contenido distribuido. Puedes aprender sobre ellos en este <strong>Especificación RSS 2.0</strong> en cyber.harvard.edu.</p> <p>Aquí hay una muestra de cómo <strong>RSS de un sitio web</strong> podría verse como</p> <pre name="code"> <rss version="2.0"> <channel> <title>Hongkiat https://www.hongkiat.com/ Consejos de diseño, tutoriales e inspiraciones en-us Visualice cualquier hoja de estilo CSS con estadísticas CSS ¿Alguna vez te has preguntado cuántas reglas CSS hay en una hoja de estilo? ¿O alguna vez has querido ver ... 18/05/2017 https://www.hongkiat.com/blog/css-stylesheet-with-css-stats/ Amazon Echo Show - El último dispositivo inteligente con tecnología de Alexa Amazon no es ajeno al concepto de sistemas domésticos inteligentes con un asistente digital integrado. Después de todo, el ... 17/05/2017 https://www.hongkiat.com/blog/alexa-device-amazon-echo-show/

    Recogiendo el feed

    Necesitamos que trae el feed con nuestra aplicación de lector RSS. En un sitio web, la URL de una fuente RSS puede ser encontrado dentro del etiqueta usando el aplicación / rss + xml tipo. Por ejemplo, encontrará el siguiente enlace de fuente RSS en Hongkiat.com.

      

    Primero, veamos como obtener la URL del feed de un sitio web usando JavaScript.

     fetch (websiteUrl) .then ((res) => res.text (). then ((htmlTxt) => var domParser = new DOMParser () let doc = domParser.parseFromString (htmlTxt, 'text / html') var feedUrl = doc.querySelector ('link [type = "application / rss + xml"]'). href)). catch (() => console.error ('Error al obtener el sitio web')) 

    los ha podido recuperar() El método es un método global que asíncronamente obtiene un recurso. Toma la URL del recurso como un argumento (la URL del sitio web en nuestro código). Eso devuelve un Promesa objeto, por lo que cuando el método obtiene con éxito el sitio web (es decir, el Promesa se cumple), la primera función dentro de la entonces() declaración maneja la respuesta obtenida (res en el código anterior).

    La respuesta obtenida es entonces. leer completamente en una cadena de texto utilizando la texto() método. Este texto representa la Texto HTML de nuestro sitio web obtenido. Me gusta ha podido recuperar(), texto() además devuelve un Promesa objeto. Entonces, cuando crea con éxito un texto de respuesta de la secuencia de respuesta, entonces() manejará ese texto de respuesta (htmlText en el código anterior).

    Una vez que el texto HTML del sitio web está disponible, usamos API de DOMParser a analizarlo en un documento DOM. DOMParser analiza una cadena de texto XML / HTML en un documento DOM. Su metodo, parseFromString (), toma dos argumentos: la texto a ser analizado y el tipo de contenido.

    Luego, desde el documento DOM creado, encuentra el href valor de lo relevante etiqueta utilizando la querySelector () Método para obtener la URL del feed..

    Análisis y visualización de la alimentación

    Una vez que obtuvimos la URL del feed del sitio web, necesitamos buscar y leer el documento RSS encontrado en esa URL.

     fetch (feedUrl) .then ((res) => res.text (). then ((xmlTxt) => var domParser = new DOMParser () let doc = domParser.parseFromString (xmlTxt, 'text / xml') doc .querySelectorAll ('item'). forEach ((item) => let h1 = document.createElement ('h1') h1.textContent = item.querySelector ('title'). textContent document.querySelector ('output'). appendChild (h1)))) 

    De la misma manera en que buscamos y analizamos el sitio web, ahora obtener y analizar el feed XML en un documento DOM. Para lograr esto, utilizamos el 'texto / xml' tipo de contenido en el parseFromString () método.

    En el documento analizado, nos seleccione todos los elementos utilizando la querySelectorAll método y recorrer cada uno.

    Dentro de cada elemento, podemos etiquetas de acceso me gusta </code>, <code><description></code>, y <code><link></code>, que llevan el contenido del feed. Y, nuestra sencilla aplicación de lector de RSS está lista, puede diseñar el contenido de los feeds recuperados como desee..</p> <h4>Demo de github</h4> <p>Puedes revisar el <strong>versión más detallada</strong> del código utilizado en este post en nuestro repositorio de Github. La versión más detallada. <strong>obtiene tres feeds</strong> (Mozilla Hacks, Hongkiat, y el blog Webkit) <strong>usando un archivo JSON</strong> y también agrega algunos estilos CSS al lector RSS.</p> <div class="rek-block"> <center> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6284591903398394" data-ad-slot="6432271471" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </center> </div> </div> </div> <div class="col-md-4"> <div class="bar"> <div class="rek-block"> <center> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6284591903398394" data-ad-slot="6432271471" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </center> </div> <div class="barpost"> <div class="bar-post-img"><a href="/articles/howto/how-to-create-a-secretly-disguised-folder-without-extra-software.html"><img src="//savtec.org/img/images_7/how-to-create-a-secretly-disguised-folder-without-extra-software_11.png" alt=""></a></div> <div class="bar-post-h1"> <a href="/articles/howto/how-to-create-a-secretly-disguised-folder-without-extra-software.html">Cómo crear una carpeta disfrazada secretamente sin software adicional</a> </div> </div> <div class="barpost"> <div class="bar-post-img"><a href="/articles/computer-tips/how-to-create-a-secured-and-locked-folder-in-windows-xp.html"><img src="//savtec.org/img/images/how-to-create-a-secured-and-locked-folder-in-windows-xp.jpg" alt=""></a></div> <div class="bar-post-h1"> <a href="/articles/computer-tips/how-to-create-a-secured-and-locked-folder-in-windows-xp.html">Cómo crear una carpeta segura y bloqueada en Windows XP</a> </div> </div> <div class="barpost"> <div class="bar-post-img"><a href="/articles/coding/how-to-create-a-responsive-navigation.html"><img src="//savtec.org/img/images_2/how-to-create-a-responsive-navigation.jpg" alt=""></a></div> <div class="bar-post-h1"> <a href="/articles/coding/how-to-create-a-responsive-navigation.html">Cómo crear una navegación responsiva</a> </div> </div> </div> </div> </div> </div> <div class="prevnext"> <div class="container"> <div class="row"> <div class="col-md-6"> <div class="post"> <div class="prevnext-title">Siguiente articulo</div> <div class="post-img"><a href="/articles/howto/how-to-create-a-search-shortcut-on-the-desktop-in-windows-8-1.html"> <img src="//savtec.org/img/images_7/how-to-create-a-search-shortcut-on-the-desktop-in-windows-81_6.png" alt=""> </a></div> <div class="post-h1"> <a href="/articles/howto/how-to-create-a-search-shortcut-on-the-desktop-in-windows-8-1.html">Cómo crear un acceso directo de búsqueda en el escritorio en Windows 8.1</a> </div> </div> </div> <div class="col-md-6"> <div class="post"> <div class="prevnext-title">Artículo anterior</div> <div class="post-img"><a href="/articles/smart-home/how-to-create-a-routine-with-amazon-alexa.html"> <img src="//savtec.org/img/images/how-to-create-a-routine-with-amazon-alexa.jpg" alt=""> </a></div> <div class="post-h1"> <a href="/articles/smart-home/how-to-create-a-routine-with-amazon-alexa.html">Cómo crear una rutina con Amazon Alexa</a> </div> </div> </div> </div> </div> </div> <footer> <div class="container"> <div class="langs-block"> <ul class="langs-list"> <li class="site-lang"><a href="https://www.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-TH"></i></a></li> <li class="site-lang"><a href="https://de.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-DE"></i></a></li> <li class="site-lang"><a href="https://ar.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-AE"></i></a></li> <li class="site-lang"><a href="https://bg.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-BG"></i></a></li> <li class="site-lang"><a href="https://cs.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-CZ"></i></a></li> <li class="site-lang"><a href="https://da.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-DK"></i></a></li> <li class="site-lang"><a href="https://el.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-GR"></i></a></li> <li class="site-lang"><a href="https://es.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-ES"></i></a></li> <li class="site-lang"><a href="https://et.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-EE"></i></a></li> <li class="site-lang"><a href="https://fi.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-FI"></i></a></li> <li class="site-lang"><a href="https://fr.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-FR"></i></a></li> <li class="site-lang"><a href="https://he.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-IL"></i></a></li> <li class="site-lang"><a href="https://hi.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-IN"></i></a></li> <li class="site-lang"><a href="https://hr.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-HR"></i></a></li> <li class="site-lang"><a href="https://hu.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-HU"></i></a></li> <li class="site-lang"><a href="https://id.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-ID"></i></a></li> <li class="site-lang"><a href="https://it.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-IT"></i></a></li> <li class="site-lang"><a href="https://ja.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-JP"></i></a></li> <li class="site-lang"><a href="https://ko.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-KR"></i></a></li> <li class="site-lang"><a href="https://lt.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-LT"></i></a></li> <li class="site-lang"><a href="https://lv.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-LV"></i></a></li> <li class="site-lang"><a href="https://ms.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-MY"></i></a></li> <li class="site-lang"><a href="https://nl.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-NL"></i></a></li> <li class="site-lang"><a href="https://no.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-NO"></i></a></li> <li class="site-lang"><a href="https://pl.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-PL"></i></a></li> <li class="site-lang"><a href="https://pt.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-PT"></i></a></li> <li class="site-lang"><a href="https://ro.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-RO"></i></a></li> <li class="site-lang"><a href="https://ru.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-RU"></i></a></li> <li class="site-lang"><a href="https://sk.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-SK"></i></a></li> <li class="site-lang"><a href="https://sl.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-SI"></i></a></li> <li class="site-lang"><a href="https://sr.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-RS"></i></a></li> <li class="site-lang"><a href="https://sv.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-SE"></i></a></li> <li class="site-lang"><a href="https://tr.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-TR"></i></a></li> <li class="site-lang"><a href="https://ua.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-UA"></i></a></li> <li class="site-lang"><a href="https://vi.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-VN"></i></a></li> </ul> </div> <div class="row align-items-center"> <div class="col-md-3"> © <script> var currentTime = new Date(); var year = currentTime.getFullYear(); document.write(year); </script> <a href="/">Savtec</a> </div> <div class="col-md-9"> Información útil y consejos de desarrollo web. Programación, diseño web, CSS, HTML, JAVASCRIPT. Configure y reinstale WINDOWS. Creación de sitios y aplicaciones desde cero. </div> </div> </div> </footer> <link rel="stylesheet" href="css/flags.css"> <script src="https://unpkg.com/simple-jekyll-search@1.5.0/dest/simple-jekyll-search.min.js"></script> <script> SimpleJekyllSearch({ searchInput: document.getElementById('search-input'), resultsContainer: document.getElementById('results-container'), json: '/search.json', searchResultTemplate: '<li><a href="{url}">{title}</a></li>' }) </script> <link rel="stylesheet" type="text/css" href="//cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.1.0/cookieconsent.min.css" /> <script src="//cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.1.0/cookieconsent.min.js"></script> <script> window.addEventListener("load", function(){ window.cookieconsent.initialise({ "palette": { "popup": { "background": "#edeff5", "text": "#838391" }, "button": { "background": "#4b81e8" } }, "theme": "classic", "position": "bottom-right" })}); </script> </body> </html>