Ich versuche, Bild-URL mit Nokogiri zu extrahieren. Der untenstehende Code funktioniert, aber ich möchte effizienter und skalierbarer arbeiten und nicht unendlich viel tun.Rubin Nokogiri. Match dynamische Attributnamen
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']
...
Ich mag beide Ansatz lernen:
1) Plain Ruby-Weg: Wie Iterieren Namen wie [ 'src' Attribute 'Daten-src', 'Datenreagieren-src', etc ...]
2) Nokogiri regex oder XPath Ansatz:
'src' || 'data-src' || 'Daten reagieren-src
wie folgt aus:
doc.at_css("img[itemprop='image']")['src' || 'data-src' || 'data-react-src]
Noch besser, speichern Attributnamen in einer Variablen:
my_attributes = [' src‘|| 'data-src' || ‚Daten reagieren-src] doc.at_css ("img [itemprop = 'Bild']") [my_attributes]
3) Wenn es einen effizienteren Ansatz als die vorherigen