ruby-on-rails 如何使用Nokogiri查找网页中的所有类元素?

siv3szwd  于 2022-12-20  发布在  Ruby
关注(0)|答案(1)|浏览(168)

我在用Nokogiri分析网页。
我可以成功地获取第一个bookTitle类元素,但我试图获取数组中的所有标题。
但是我很难得到所有其他的元素。什么是得到它们的最好方法?

doc = Nokogiri::HTML(URI.open("https://www.goodreads.com/search?utf8=%E2%9C%93&q=barack+obama&search_type=books&search%5Bfield%5D=author"))

puts doc.at_css('.bookTitle').content
# returns Dreams from My Father: A Story of Race and Inheritance

puts doc.xpath('//*[@class="bookTitle"]').size;
# returns 20, which is correct
9bfwbjaz

9bfwbjaz1#

at_css(或仅at)返回第一个匹配的元素(Nokogiri::XML::Element
需要css方法,返回匹配元素的集合(Nokogiri::XML::NodeSet

doc.css('.bookTitle')

您可能需要对此类集合进行Map

doc.css('.bookTitle').lazy.map(&:text).map(&:strip).to_a

相关问题