[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
- Verwenden Sie RDF, um Inhaltsinformationen in Metadaten zu konvertieren.
--Schreiben Sie diese Informationen in XML-Sprache.
Website-Elemente |
Auszeichnungssprache |
Website |
HTML |
RSS |
XML |
Metadaten summary> Spalten in der Datenbank details>
RDF summary> Ein Standard zum Vereinheitlichen von Metadaten. Modell in der Datenbank? details>
Auszeichnungssprache summary> Eine Sprache, die die Struktur von Daten anhand der durch <> details> 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
- Senden Sie RSS an Rails
- Analysieren Sie das empfangene RSS in überschaubarer Form
- 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? summary> 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. details>
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.