[RUBY] [Rails] Lesen Sie das RSS der Site und geben Sie den Inhalt an die Vorderseite zurück

Was ist RSS?

Abkürzung für Rich Site Summary (Rich Site Summary). Dies bedeutet eine Rich Site Summary.

Das Hauptmerkmal ist

Website-Elemente Auszeichnungssprache
Website HTML
RSS XML
Metadaten Spalten in der Datenbank
RDF Ein Standard zum Vereinheitlichen von Metadaten. Modell in der Datenbank?
Auszeichnungssprache Eine Sprache, die die Struktur von Daten anhand der durch <> dargestellten Elemente anzeigt

Edelstein hinzufügen

Gemfile


gem 'feedjira'
gem 'httparty'
$ bundle install

Ablauf der Verarbeitung des Ziel-RSS mit Rails und des Sendens an den Client

  1. Senden Sie RSS an Rails
  2. Analysieren Sie das empfangene RSS in überschaubarer Form
  3. Geben Sie die analysierten Objektdaten im JSON-Format an den Client zurück

Dieses Mal schreiben wir die Verarbeitung auf die Serverseite. Schauen wir uns also die zweite und dritte Codierung an.

Konvertieren Sie das empfangene RSS in Daten im XML-Format

python



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

Analysieren Sie die konvertierten XML-Daten in Objektformatdaten.

python



obj = Feedjira.parse(xml)
Was ist Parsing? Dies ist der Prozess der Analyse der Daten, um festzustellen, ob sie verarbeitet werden können (Daten im RSS-Format) und ob sie verarbeitet werden können, sogar um sie zu konvertieren.

Zerlegen Sie Objektdaten, damit der Artikelinhalt abgerufen werden kann

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

Der Inhalt des Artikels kann erhalten werden, indem die Daten zu einem Element des Arrays gemacht werden. obj.entries ist ein Block des Artikelinhalts eines Objekts.

Erstellen Sie Daten, um zum Client zurückzukehren

python


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

render :json => data

Kehren Sie im JSON-Format zum Client zurück.

Recommended Posts