J'essaie d'extraire l'URL de l'image en utilisant Nokogiri. Le code ci-dessous fonctionne, mais je voudrais faire de manière plus efficace et plus évolutive, ne faisant pas elsif infiniment.Ruby Nokogiri. Faire correspondre les noms d'attributs dynamiques
if doc.at_css("img[itemprop='image']")['src']
img = doc.at_css("img[itemprop='image']")['src']
elsif doc.at_css("img[itemprop='image']")['data-src']
img = doc.at_css("img[itemprop='image']")['data-src']
elsif doc.at_css("img[itemprop='image']")['data-react-src']
img = doc.at_css("img[itemprop='image']")['data-react-src']
...
Je voudrais apprendre à la fois l'approche:
1) façon ordinaire Ruby: Comme itérer attributs des noms tels que [ 'src', 'data-src', 'data-réagir-src', etc ...]
2) Nokogiri regex ou XPath, approche:
'src' || 'data-src' || 'Données réagissent-src
comme ceci:
doc.at_css("img[itemprop='image']")['src' || 'data-src' || 'data-react-src]
Mieux encore, stocker les noms d'attribut dans une variable:
my_attributes = [' src » || 'data-src' || « Données réagissent-src] doc.at_css ("img [itemprop = 'image']") [my_attributes]
3) S'il y a une approche plus efficace que les précédentes