Сохранение массива в Csv: << ': undefined methodmap' для "Coco": String - PullRequest
0 голосов
/ 22 мая 2018

Я пытаюсь обработать веб-страницу allocine как упражнение, и я могу получить названия фильмов, но не могу сохранить их в CSV-файле.

require 'open-uri'
require 'nokogiri'
require 'csv'

url = "http://www.allocine.fr/film/meilleurs/"

html_file = open(url).read
html_doc = Nokogiri::HTML(html_file)
array = []

html_doc.search('.no_underline').each do |element|
    array << element.text.strip
end

puts array

csv_options = { col_sep: ',', force_quotes: true, quote_char: '"' }
filepath    = 'allocine.csv'

CSV.open(filepath, 'wb', csv_options) do |csv|
  array.each  { |item| csv << item }
end

Вот мое сообщение об ошибке: Coco Forrest Gump La Ligne verte Ваше имя La Liste de Schindler 12 месяцев Lion Le Parrain Django Свободная цепочка Tu ne tueras point Темный рыцарь, Le Chevalier Noir Gran Torino LeСеньор Анну: возвращение к творчеству Криминальное чтиво Les Evadés Сеньор де Анно: Бойцовский клуб Le Roi Lion Величайший шоумен Ле Сеньор Анн: гастрономические туры Vol au-dessus d'un nid de coucou LesEnfants Loups, Ame & Yuki Au Revoir Là-haut Межзвездный Гладиатор

/ Пользователи / laburthe / .rbenv / версии / 2.4.3 / lib / ruby ​​/ 2.4.0 / csv.rb: 1705: в <<': undefined method map 'для "Coco": String (NoMethodError) Вы имели в виду?нажмите из scrap.rb: 22: в block (2 levels) in <main>' from scrap.rb:22:in каждый 'из scrap.rb: 22: в block in <main>' from /Users/laburthe/.rbenv/versions/2.4.3/lib/ruby/2.4.0/csv.rb:1299:in open' из scrap.rb: 21: в `'

1 Ответ

0 голосов
/ 22 мая 2018

ваш csv объект не принимает строку, потому что он ожидает массив, представляющий целую строку / строку.

Итак, возможно, это то, что вы хотите

CSV.open(filepath, 'wb', csv_options) do |csv|
  array.each  { |item| csv << [item] }
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...