[RUBY] [Rails] Lire le RSS du site et renvoyer le contenu au premier plan

Qu'est-ce que RSS

Abréviation de Rich Site Summary, qui signifie un résumé de site riche.

La caractéristique principale est

--Utilisez RDF pour convertir les informations de contenu en métadonnées.

Éléments du site Web Langage de balisage
page Web HTML
RSS XML
Métadonnées Colonnes dans la base de données
RDF Un standard pour unifier les métadonnées. Modèle dans la base de données?
Langage de balisage Un langage qui montre la structure des données en utilisant les éléments représentés par <>

Ajouter un bijou

Gemfile


gem 'feedjira'
gem 'httparty'
$ bundle install

Flux de traitement du RSS cible avec Rails et envoi au client

  1. Envoyez RSS aux rails
  2. Analyser le RSS reçu sous une forme gérable
  3. Renvoyez les données d'objet analysées au client au format JSON

Cette fois, nous écrirons le traitement côté serveur, regardons donc le deuxième et le troisième codage.

Convertir les données RSS reçues au format XML

python



rss = Feed.new(url: params[:url])
xml = HTTParty.get(rss).body

Analysez les données XML converties en données au format objet.

python



obj = Feedjira.parse(xml)
Qu'est-ce que l'analyse Il s'agit du processus d'analyse des données pour déterminer si elles peuvent être gérées (données au format rss), et si elles peuvent être gérées, voire les convertir.

Décomposer les données d'objet afin que le contenu de l'article puisse être récupéré

python


list = []

obj.entries.each do |item|
  list += [
    :title => item.title,
    :url => item.url,
    :title => item.summary,
    :published => item.published.to_time.strftime("%Y-%m-%d %H:%M:%S")
  ]
end

Le contenu de l'article peut être obtenu en faisant des données un élément du tableau. ʻObj.entries` est un bloc de contenu d'article pour un objet.

Créer des données à retourner au client

python


data = {
  feed: {
    id: rss.id,
    url: rss.url,
    title: obj.title,
    item: list    
  }
}

render :json => data

Revenez au client au format JSON.

Recommended Posts