Webscraping - 从包含多个项目的列中提取单个项目(Nokogiri,Ruby)

Webscraping - Extracting individual items from a column that contains multiple items (Nokogiri, Ruby)

我是网络开发的新手,正在尝试学习网络抓取。我试图从中提取的列包含多个项目,我想分别获取各个项目。

site = "http://www.cyrptomarketcap.com"
doc = Nokogiri::HTML.parse(open(site))
coin_table = doc.css("table").sort { |x,y| y.css("tr").count <=> x.css("tr").count }.first
rows = coin_table.cc("tr")
rows = rows.select { |row| row.css("th").empty? }
data = rows.map do |row|
  [row.at_css("td:nth-child(2)").try(:text)]
end

结果是:

=>[["\n\n\n\nBTC\nBitcoin\n"],["\n\n\n\nXRP\nRipple\n "], ... ]

我需要做什么才能只获取名称?

您可以将以下内容应用于您的 data 变量:

data.flatten.map { |s| s.split("\n")[-2].gsub(' ', '') }

结果为:

["Bitcoin", "Ripple", ...]