0
我想使用Nokogiri提取圖像URL。 下面的代碼有效,但我希望以更高效和可擴展的方式進行操作,而不是無限制地執行elsif。Ruby Nokogiri。匹配動態屬性名稱
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']
...
我想了解這兩種方法:
1)普通紅寶石方式:像迭代屬性,如[ 'src' 中,'數據-SRC的名字, '數據反應-src' 中,等...]
2)引入nokogiri正則表達式或XPath,方法:
'SRC' || 'data-src'|| '數據-反應-SRC
這樣的:
doc.at_css("img[itemprop='image']")['src' || 'data-src' || 'data-react-src]
更好的是,存儲屬性名稱在一個變量:
my_attributes = [' SRC」 || 'data-src'|| 「數據-反應-SRC] doc.at_css( 「IMG [itemprop = '圖像']」)[my_attributes]
3)如果有一個更有效的方法比以前的