下面的代码可以工作,但我希望以更高效和可扩展的方式进行,而不是无限地进行elsif。
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) 普通Ruby方式:像迭代属性名一样
['src', 'data-src', 'data-react-src', etc...]
2) Nokogiri正则表达式或xpath,方法:
'src' || 'data-src' || 'data-react-src
文件。at_css(“img[itemprop='image']”['src'| |'data src'| |'data react src]
更好的是,将属性名称存储在变量中:
my_attributes = ['src' || 'data-src' || 'data-react-src]
doc.at_css("img[itemprop='image']").[my_attributes]
3) 如果有比以前更有效的方法