MST

星途 面试题库

面试题:Ruby数据分析工具之Nokogiri的使用

在Ruby中,使用Nokogiri进行HTML数据解析。假设给定一个包含书籍信息的HTML页面,结构如下:<html><body><div class='book'><h2 class='title'>书名1</h2><p class='author'>作者1</p><p class='price'>25.5</p></div><div class='book'><h2 class='title'>书名2</h2><p class='author'>作者2</p><p class='price'>30.0</p></div></body></html> 请编写Ruby代码,使用Nokogiri提取所有书籍的书名、作者和价格,并以数组形式返回,数组中每个元素是一个包含书名、作者和价格的子数组。
46.2万 热度难度
编程语言Ruby

知识考点

AI 面试

面试题答案

一键面试
require 'nokogiri'

html = <<-HTML
<html>
  <body>
    <div class='book'>
      <h2 class='title'>书名1</h2>
      <p class='author'>作者1</p>
      <p class='price'>25.5</p>
    </div>
    <div class='book'>
      <h2 class='title'>书名2</h2>
      <p class='author'>作者2</p>
      <p class='price'>30.0</p>
    </div>
  </body>
</html>
HTML

doc = Nokogiri::HTML(html)

books = []
doc.css('.book').each do |book|
  title = book.css('.title').text
  author = book.css('.author').text
  price = book.css('.price').text.to_f
  books << [title, author, price]
end

puts books.inspect

上述代码首先引入nokogiri库,然后将给定的HTML字符串解析为Nokogiri文档对象。接着,通过CSS选择器找到每个book元素,并从每个book元素中提取书名、作者和价格,最后将这些信息以数组形式存储并返回。