salut! Cette fois, je vais analyser les actualités RSS avec Nokogiri et résumer comment les gérer avec Ruby.
Dans ce résumé, nous utiliserons un joyau appelé Nokogiri pour gérer les actualités RSS dans Ruby. Si vous pouvez gérer les actualités RSS avec Ruby, vous pouvez créer votre propre média de curation et ce sera intéressant, alors faisons-le.
Je vais automatiquement récupérer la partie titre des nouvelles du RSS qui distribue les informations de jeu suivantes et les mettre dans le tableau. https://automaton-media.com/feed/
Pour le moment, je vais en faire un simple et le mettre ensemble. (Si vous en avez envie, écrivons un gros article comme "Créez un média de curation avec Rails!")
Avant de traiter les données d'actualité RSS, jetons un bref coup d'œil à XML.
La partie écrite comme
<? Xml version = "1.0" ~
au début indique que ce fichier est un fichier XML, et il doit être décrit au début.
Le bloc suivant la déclaration XML qui commence par <channel> ''
définit le nom du canal pour ce RSS.
Le logo de la chaîne, etc. est défini.
Tout d'abord, installons Nokogiri.
gem install nokogiri
Pour une utilisation avec Rails, ajoutez nokogiri à votre Gemfile.
gem 'nokogiri'
Après l'avoir ajouté au Gemfile, installez l'ensemble.
bundle install
Maintenant que Nokogiri est installé, créons en fait un programme.
Tout d'abord, créez un fichier appelé nokogiri.rb et ajoutez les deux lignes suivantes au début.
nokogiri.rb
require 'open-uri' #Je veux utiliser la méthode ouverte qui peut obtenir les données d'URL en passant l'URL en tant qu'argument, alors chargez-la.
require 'nokogiri' #Les données extraites par la méthode ouverte sont lues pour être traitées par nokogiri.
nokogiri.rb
require 'open-uri'
require 'nokogiri'
url = 'https://automaton-media.com/feed/' #Réglez les actualités à lire cette fois.
charset = nil #Réinitialisez les nouvelles chargées à zéro afin qu'elles ne soient pas brouillées.
titles = open(url) do |file| #Obtenez les données avec la méthode ouverte, transmettez-les au bloc et utilisez-le.
charset = file.charset #Définissez le jeu de caractères du fichier lu dans charset.
end
nokogiri.rb
require 'open-uri'
require 'nokogiri'
url = 'https://automaton-media.com/feed/'
charset = nil
titles = open(url) do |file|
charset = file.charset
doc = Nokogiri::XML(file) #Faites du fichier récupéré par la méthode open un objet de Nokogiri.
channel = doc.at_xpath('//channel') #Récupérez la partie canal dans le fichier.
title = channel.xpath('//title') #Obtenez tous les titres de la chaîne.
title.map { |title| title.text } #Collectez uniquement la partie de texte du NodeSet du titre dans un tableau.
end
puts titles #Sortons le titre.
** Description de la méthode Nokogiri **
--at_xpath Renvoie le premier élément qui correspond au xpath spécifié. (L'élément s'appelle Node) --xpath Renvoie tous les éléments qui correspondent au xpath spécifié. (L'élément s'appelle NodeSet)
Exécutons le fichier créé.
ruby nokogiri.rb
Avez-vous obtenu les titres des actualités organisés dans un tableau comme indiqué ci-dessous?
La méthode de recherche de Nokogiri peut être recherchée à chaque fois sur Google en fonction des exigences de l'actualité que vous souhaitez extraire, mais les méthodes fréquemment utilisées sont résumées ci-dessous.
at
doc.at('//title') #Renvoie le premier nœud de recherche.
at_xpath
doc.at_xpath('//title') #Recherchez par xpath et renvoyez le premier nœud atteint.
xpath
doc.xpath('//title') #Renvoie un NodeSet qui lance une recherche sur xpath.
at_css
doc.at_css('title') #Recherchez par css et renvoyez le premier nœud atteint.
css
doc.css('title') #Renvoie un NodeSet qui lance une recherche en css.
Cette fois, j'ai rassemblé les titres des actualités RSS dans un tableau avec Ruby, mais si possible, je pense que je peux les mettre dans la base de données, notifier Slack et LINE, et ainsi de suite. Il peut être intéressant de créer un site de synthèse pour vous-même.